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

Re: [Xen-devel] [PATCH 3/9] pygrub: don't leave fds open



On 07/11/12 12:23, Roger Pau Monne wrote:

> On NetBSD a block device can only be opened once, so make sure pygrub
> closes it every time, if this is not done libfsimage is not able to
> open the disk later.
> 
> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Cc: Christoph Egger <Christoph.Egger@xxxxxxx>
> Signed-off-by: Roger Pau Monne <roger.pau@xxxxxxxxxx>


Acked-by: Christoph Egger <Christoph.Egger@xxxxxxx>

> ---
>  tools/pygrub/src/pygrub |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub
> index 6dd44ac..ad78c22 100644
> --- a/tools/pygrub/src/pygrub
> +++ b/tools/pygrub/src/pygrub
> @@ -67,6 +67,7 @@ def get_solaris_slice(file, offset):
>      fd = os.open(file, os.O_RDONLY)
>      os.lseek(fd, offset + (DK_LABEL_LOC * SECTOR_SIZE), 0)
>      buf = os.read(fd, 512)
> +    os.close(fd)
>      if struct.unpack("<H", buf[508:510])[0] != DKL_MAGIC:
>          raise RuntimeError, "Invalid disklabel magic"
>  
> @@ -93,6 +94,7 @@ def get_fs_offset_gpt(file):
>          buf = os.read(fd, partsize)
>          offsets.append(struct.unpack("<Q", buf[32:40])[0] * SECTOR_SIZE)
>          i -= 1
> +    os.close(fd)
>      return offsets
>  
>  FDISK_PART_SOLARIS=0xbf
> @@ -116,6 +118,7 @@ def get_partition_offsets(file):
>  
>      fd = os.open(file, os.O_RDONLY)
>      buf = os.read(fd, 512)
> +    os.close(fd)
>      for poff in (446, 462, 478, 494): # partition offsets
>  
>          # MBR contains a 16 byte descriptor per partition



-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85689 Dornach b. Muenchen
Geschaeftsfuehrer: Alberto Bozzo, Andrew Bowd
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.