[libvirt] [PATCH 4/5] free extent fix
Daniel P. Berrange
berrange at redhat.com
Thu Jun 25 09:17:18 UTC 2009
On Wed, Jun 24, 2009 at 11:19:37AM +0200, Henrik Persson wrote:
> Parted reports that the first block of the disk is free, even if it is occupied by the
> partition table.
> --- libvirt-0.6.4.patches/src/storage_backend_disk.c 2009-06-23 18:17:19.039168000 +0200
> +++ libvirt-0.6.4/src/storage_backend_disk.c 2009-06-23 18:17:10.324936000 +0200
> @@ -36,6 +36,8 @@
>
> #define PARTHELPER BINDIR "/libvirt_parthelper"
>
> +#define SECTOR_SIZE 512
> +
> /* Map partition types to internal enum */
> static int
> virStorageBackendDiskMapPartitionType(const char* partType)
> @@ -214,6 +216,11 @@ virStorageBackendDiskMakeFreeExtent(virC
> &dev->freeExtents[dev->nfreeExtent].end) < 0)
> return -1; /* Don't bother to re-alloc freeExtents - it'll be free'd shortly */
>
> + /* first block reported as free, even if it is not */
> + if (dev->freeExtents[dev->nfreeExtent].start == 0) {
> + dev->freeExtents[dev->nfreeExtent].start = SECTOR_SIZE;
> + }
> +
> pool->def->available +=
> (dev->freeExtents[dev->nfreeExtent].end -
> dev->freeExtents[dev->nfreeExtent].start);
ACK, makes sense,
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list