]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: hotplug: Allow update of disk default snapshot location
authorPeter Krempa <pkrempa@redhat.com>
Thu, 28 Apr 2016 15:57:33 +0000 (17:57 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 2 May 2016 07:03:02 +0000 (09:03 +0200)
Since the field is internal to libvirt we can allow the users to modify
it.

src/qemu/qemu_domain.c
src/qemu/qemu_driver.c

index f6e68ea918beb4ff3b6400c4827d8bf15bbda939..e6cd7754be86c1fccae1315d841bc54f3be370a0 100644 (file)
@@ -3923,7 +3923,7 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk,
     CHECK_EQ(ioeventfd, "ioeventfd", true);
     CHECK_EQ(event_idx, "event_idx", true);
     CHECK_EQ(copy_on_read, "copy_on_read", true);
-    CHECK_EQ(snapshot, "snapshot", true);
+    /* "snapshot" is a libvirt internal field and thus can be changed */
     /* startupPolicy is allowed to be updated. Therefore not checked here. */
     CHECK_EQ(transient, "transient", true);
     CHECK_EQ(info.bootIndex, "boot order", true);
index e5badf637af641a75d073bc0657789cc5da38721..351f4006be12c545f3f04bc2c66e440b3d008fef 100644 (file)
@@ -7682,6 +7682,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn,
     virDomainDiskDefPtr disk = dev->data.disk;
     virDomainDiskDefPtr orig_disk = NULL;
     int startupPolicy;
+    int snapshot;
     int ret = -1;
 
     if (virStorageTranslateDiskSourcePool(conn, disk) < 0)
@@ -7700,6 +7701,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn,
     }
 
     startupPolicy = orig_disk->startupPolicy;
+    snapshot = orig_disk->snapshot;
 
     switch ((virDomainDiskDevice) disk->device) {
     case VIR_DOMAIN_DISK_DEVICE_CDROM:
@@ -7708,6 +7710,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn,
             goto cleanup;
 
         orig_disk->startupPolicy = dev->data.disk->startupPolicy;
+        orig_disk->snapshot = dev->data.disk->snapshot;
 
         if (qemuDomainDiskSourceDiffers(conn, disk, orig_disk)) {
             /* Add the new disk src into shared disk hash table */
@@ -7742,6 +7745,7 @@ qemuDomainChangeDiskLive(virConnectPtr conn,
     return ret;
 
  rollback:
+    orig_disk->snapshot = snapshot;
     orig_disk->startupPolicy = startupPolicy;
     goto cleanup;
 }