[libvirt] [PATCH] snapshot: allow disk snapshots of qcow2 disks

Daniel Veillard veillard at redhat.com
Sat Sep 17 14:51:29 UTC 2011


On Sat, Sep 17, 2011 at 06:22:09AM -0600, Eric Blake wrote:
> For all types of disks other than qcow2, we were requesting that
> SELinux labeling visit the new file as if it were qcow2, which
> means labeling would try to find the backing files of an empty file.
> And for a pre-existing qcow2 disk, we were passing NULL, which meant
> that labelling tried to probe the file type (and if probing is
> disabled, per the default qemu.conf, this made snapshots fail).
> What we really want is to make SELinux labeling visit the new
> file as raw; it will later be converted to qcow2 if qemu successfully
> made the snapshot.
> 
> * src/qemu/qemu_driver.c
> (qemuDomainSnapshotCreateSingleDiskActive): Force SELinux labeling
> to avoid probe of new file.
> ---
> 
> Fixes https://bugzilla.redhat.com/show_bug.cgi?id=738676
> 
> I wonder why we are passing disk types as strings, instead of encoding
> them as an enum.  Use of an enum would avoid my ugly hack of having to
> cast away const of my temporary assignment of a string.

  The only advantage I would see is better error handling when hitting
a value not known by the current libvirtd, the string allows to report
what is missing, but it's really a corner case.

>  src/qemu/qemu_driver.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 2a1e5ea..e2f428f 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -9151,7 +9151,7 @@ qemuDomainSnapshotCreateSingleDiskActive(struct qemud_driver *driver,
>      origsrc = disk->src;
>      disk->src = source;
>      origdriver = disk->driverType;
> -    disk->driverType = driverType;
> +    disk->driverType = (char *) "raw"; /* Don't want to probe backing files */
> 
>      if (virDomainLockDiskAttach(driver->lockManager, vm, disk) < 0)
>          goto cleanup;

  ACK,

Daniel

-- 
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