]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: snapshot: Don't kill access to disk if snapshot creation fails
authorPeter Krempa <pkrempa@redhat.com>
Fri, 31 May 2013 13:38:46 +0000 (15:38 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 31 May 2013 13:41:59 +0000 (15:41 +0200)
If snapshot creation failed for example due to invalid use of the
"REUSE_EXTERNAL" flag, libvirt killed access to the original image file
instead of the new image file. On machines with selinux this kills the
whole VM as the selinux context is enforced immediately.

* qemu_driver.c:qemuDomainSnapshotUndoSingleDiskActive():
    - Kill access to the new image file instead of the old one.

Partially resolves: https://bugzilla.redhat.com/show_bug.cgi?id=906639

src/qemu/qemu_driver.c

index e638e7cfeba22e9e9061050100e52f10850992d5..5ca0fd4a1eb741783c058b2326c46d1536a99d08 100644 (file)
@@ -11309,7 +11309,7 @@ qemuDomainSnapshotUndoSingleDiskActive(virQEMUDriverPtr driver,
         (persistDisk && VIR_STRDUP(persistSource, source) < 0))
         goto cleanup;
 
-    qemuDomainPrepareDiskChainElement(driver, vm, disk, origdisk->src,
+    qemuDomainPrepareDiskChainElement(driver, vm, disk, disk->src,
                                       VIR_DISK_CHAIN_NO_ACCESS);
     if (need_unlink && stat(disk->src, &st) == 0 &&
         S_ISREG(st.st_mode) && unlink(disk->src) < 0)