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

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

 



On Sat, Oct 27, 2012 at 07:23:36PM +0200, Davidlohr Bueso wrote:
> 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>

Acked-by: Petr Uzel <petr.uzel@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
> 
> 
> 
> 

Petr

-- 
Petr Uzel
IRC: ptr_uzl @ freenode

Attachment: pgpTlQlTOBm5k.pgp
Description: PGP signature


[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