[libvirt] [PATCH] Fix sparse volume allocation reporting

Daniel Veillard veillard at redhat.com
Tue Mar 24 19:49:53 UTC 2009

On Tue, Mar 24, 2009 at 03:29:21PM -0400, Cole Robinson wrote:
> I have a sparse volume with a capacity of 1000M, and an allocation of a
> little over 750M. 'du' prints the correct sizes, but 'virsh vol-dumpxml'
> shows:
>     <capacity>1048576000</capacity>
>   <allocation>6406307840</allocation>
> This is because we were calculating the allocation size using the
> requested fs block size, instead of what stat actually uses as a block
> size (DEV_BSIZE in sys/params.h). sys/params.h looks to be present in
> mingw32-runtime, so I didn't add a configure check for it.

  That's weird but the mistake is understandable.
The man page (Fedora 9 maybe it was updated) states:

      The st_blocks field indicates the number of  blocks  allocated to  the
      file,  512-byte  units.  (This may be smaller than st_size/512 when the
      file has holes.)

  that's even worse I think.

> The attached patch fixes allocation listing for me.

  Looks fine to me, I wonder if that will work correctly on solaris for
  Coding wise I'm just a bit surprized with the declaration in the
middle of a block, but I probably need to get over it :-)


Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

More information about the libvir-list mailing list