]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: snapshot: Remove monitor code now that 'transaction' is always used
authorPeter Krempa <pkrempa@redhat.com>
Tue, 5 Jun 2018 12:56:01 +0000 (14:56 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 20 Jul 2018 11:39:44 +0000 (13:39 +0200)
Since we now always do the snapshot via the 'transaction' command we can
drop the code which would enter monitor for individual disk snapshots.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_driver.c

index fdcc5af5974a48a1f2999459c204034dc7739f25..3f1d4c3d50df95b17c9b4758a6ecc69ad2deca5d 100644 (file)
@@ -14928,14 +14928,12 @@ qemuDomainSnapshotUpdateDiskSources(qemuDomainSnapshotDiskDataPtr dd,
 }
 
 
-/* The domain is expected to hold monitor lock.  */
 static int
 qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
                                          virDomainObjPtr vm,
                                          qemuDomainSnapshotDiskDataPtr dd,
                                          virJSONValuePtr actions,
-                                         bool reuse,
-                                         qemuDomainAsyncJob asyncJob)
+                                         bool reuse)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
     char *device = NULL;
@@ -14967,23 +14965,10 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
 
     dd->prepared = true;
 
-    /* create the actual snapshot */
     formatStr = virStorageFileFormatTypeToString(dd->src->format);
 
-    /* The monitor is only accessed if qemu doesn't support transactions.
-     * Otherwise the following monitor command only constructs the command.
-     */
-    if (!actions &&
-        qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
-        goto cleanup;
-
     ret = rc = qemuMonitorDiskSnapshot(priv->mon, actions, device, source,
                                        formatStr, reuse);
-    if (!actions) {
-        if (qemuDomainObjExitMonitor(driver, vm) < 0)
-            ret = -1;
-    }
-
     virDomainAuditDisk(vm, dd->disk->src, dd->src, "snapshot", rc >= 0);
 
  cleanup:
@@ -15035,11 +15020,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
 
         ret = qemuDomainSnapshotCreateSingleDiskActive(driver, vm,
                                                        &diskdata[i],
-                                                       actions, reuse, asyncJob);
-
-        /* without transaction support the change can't be rolled back */
-        if (!actions)
-            qemuDomainSnapshotUpdateDiskSources(&diskdata[i], &persist);
+                                                       actions, reuse);
 
         if (ret < 0)
             goto error;
@@ -15047,7 +15028,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
         do_transaction = true;
     }
 
-    if (actions && do_transaction) {
+    if (do_transaction) {
         if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
             goto cleanup;