[Libguestfs] [PATCH] Don't use libvirt for volume information when converting with libvirtxml

Richard W.M. Jones rjones at redhat.com
Wed Jan 26 15:50:54 UTC 2011


On Wed, Jan 26, 2011 at 03:16:50PM +0000, Matthew Booth wrote:
> I observed that qemu-img *does* get the correct 'virtual size' for
> both block devices and regular files. I don't want to use more
> external tools than required, so I'd prefer not to call blockdev.
> Why wouldn't you trust qemu-img here? [...]

Actually I've looked at the code (qemu/block/*.c), yes I would trust
it.

It uses 'lseek (fd, 0, SEEK_END)' for raw format block devices and
files.  It uses the metadata for qcow2.

> As for $st->blocks, any idea when it wouldn't be valid? As it
> happens, you can assume that this is in units of 512 (see man 2
> stat). Although block sizes have moved on, I guess this value has
> been grandfathered for compatibility.

OK it does appear to say that.  Still I wouldn't be wholly trusting of
this, particularly when you mix in 4K sectors and other operating
systems.

Anyway qemu-img seems to be doing the right thing, so go with that,
unless you really need the on-disk allocated size for some reason.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list