From: Peter Krempa Date: Wed, 6 Jan 2016 12:56:47 +0000 (+0100) Subject: qemu: snapshot: Skip 'transaction' command when no disks are selected X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=5f7df346118ba227ecd3ea4413d31e142f0bf513;p=libvirt.git qemu: snapshot: Skip 'transaction' command when no disks are selected When doing a memory-only snapshot libvirt would still issue the 'transaction' command without any disk. Skip it if it isn't necessary. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 1161aa0858..39c2c05017 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14331,6 +14331,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver, { qemuDomainObjPrivatePtr priv = vm->privateData; virJSONValuePtr actions = NULL; + bool do_transaction = false; int ret = 0; size_t i; bool persist = false; @@ -14379,9 +14380,11 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver, reuse, asyncJob); if (ret < 0) break; + + do_transaction = true; } if (actions) { - if (ret == 0) { + if (ret == 0 && do_transaction) { if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) { ret = qemuMonitorTransaction(priv->mon, actions); if (qemuDomainObjExitMonitor(driver, vm) < 0) @@ -14390,6 +14393,8 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver, /* failed to enter monitor, clean stuff up and quit */ ret = -1; } + } else { + VIR_DEBUG("no disks to snapshot, skipping 'transaction' command"); } virJSONValueFree(actions);