[libvirt] [PATCH v2] Block info query: Add check for transient domain

Eric Blake eblake at redhat.com
Fri Jan 24 16:26:42 UTC 2014

On 01/23/2014 07:57 PM, John Ferlan wrote:
> Currently the qemuDomainGetBlockInfo will return allocation == physical
> for most backing stores. For a qcow2 block backed device it's possible
> to return the highest lv extent allocated from qemu for an active guest.
> That is a value where allocation != physical and one would hope be less.
> However, if the guest is not running, then the code falls back to returning
> allocation == physical. This turns out to be problematic for rhev which
> monitors the size of the backing store. During a migration, before the
> VM has been started on the target and while it is deemed inactive on the
> source, there's a small window of time where the allocation is returned
> as physical triggering the code to extend the file unnecessarily.
> Since rhev uses transient domains and this is edge condition for a transient
> domain, rather than returning good status and allocation == physical when
> this "window of opportunity" exists, this patch will check for a transient
> (or non persistent) domain and return a failure to the caller rather than
> returning the defaults. For a persistent domain, the defaults will be
> returned. The description for the virDomainGetBlockInfo has been updated
> to describe the phenomena.

> @@ -10300,6 +10310,15 @@ cleanup:
>      VIR_FREE(alias);
>      virStorageFileFreeMetadata(meta);
>      VIR_FORCE_CLOSE(fd);
> +
> +    /* If we failed to get data from a domain because it's inactive and
> +     * it's not a persisent domain, then force failure.



Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140124/bb21738d/attachment-0001.sig>

More information about the libvir-list mailing list