[PATCH 1/2] fdisk: gpt: write entire first sector

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We were writing only 1 byte in LBA0, and GPT requires dealing with an entire
sector. This bug wasn't affecting when dealing with already existing devices
with GPT as we weren't writing an important part of the first sector, thus
leaving it unchanged. Also use write_all() wrapper from all-io.h

Signed-off-by: Davidlohr Bueso <dave@xxxxxxx>
---
 fdisks/gpt.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/fdisks/gpt.c b/fdisks/gpt.c
index 40cadb1..48397f3 100644
--- a/fdisks/gpt.c
+++ b/fdisks/gpt.c
@@ -44,6 +44,7 @@
 #include "blkdev.h"
 #include "bitops.h"
 #include "strutils.h"
+#include "all-io.h"
 
 #define GPT_HEADER_SIGNATURE 0x5452415020494645LL /* EFI PART */
 #define GPT_HEADER_REVISION_V1_02 0x00010200
@@ -1057,8 +1058,10 @@ static int gpt_write_pmbr(struct fdisk_context *cxt)
 	if (offset != lseek(cxt->dev_fd, offset, SEEK_SET))
 		goto fail;
 
-	if (1 == write(cxt->dev_fd, pmbr, 1))
-		return 0;
+	/* pMBR covers the first sector (LBA) of the disk */
+	if (write_all(cxt->dev_fd, pmbr, cxt->sector_size))
+		goto fail;
+	return 0;
 fail:
 	return -errno;
 }
-- 
1.7.9.5




--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux