提交 d5d02aa9 编写于 作者: P Peter Krempa

qemu: snapshot: Remove monitor code now that 'transaction' is always used

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: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 aa65f0f2
...@@ -14928,14 +14928,12 @@ qemuDomainSnapshotUpdateDiskSources(qemuDomainSnapshotDiskDataPtr dd, ...@@ -14928,14 +14928,12 @@ qemuDomainSnapshotUpdateDiskSources(qemuDomainSnapshotDiskDataPtr dd,
} }
/* The domain is expected to hold monitor lock. */
static int static int
qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver, qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
virDomainObjPtr vm, virDomainObjPtr vm,
qemuDomainSnapshotDiskDataPtr dd, qemuDomainSnapshotDiskDataPtr dd,
virJSONValuePtr actions, virJSONValuePtr actions,
bool reuse, bool reuse)
qemuDomainAsyncJob asyncJob)
{ {
qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainObjPrivatePtr priv = vm->privateData;
char *device = NULL; char *device = NULL;
...@@ -14967,23 +14965,10 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver, ...@@ -14967,23 +14965,10 @@ qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
dd->prepared = true; dd->prepared = true;
/* create the actual snapshot */
formatStr = virStorageFileFormatTypeToString(dd->src->format); 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, ret = rc = qemuMonitorDiskSnapshot(priv->mon, actions, device, source,
formatStr, reuse); formatStr, reuse);
if (!actions) {
if (qemuDomainObjExitMonitor(driver, vm) < 0)
ret = -1;
}
virDomainAuditDisk(vm, dd->disk->src, dd->src, "snapshot", rc >= 0); virDomainAuditDisk(vm, dd->disk->src, dd->src, "snapshot", rc >= 0);
cleanup: cleanup:
...@@ -15035,11 +15020,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver, ...@@ -15035,11 +15020,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
ret = qemuDomainSnapshotCreateSingleDiskActive(driver, vm, ret = qemuDomainSnapshotCreateSingleDiskActive(driver, vm,
&diskdata[i], &diskdata[i],
actions, reuse, asyncJob); actions, reuse);
/* without transaction support the change can't be rolled back */
if (!actions)
qemuDomainSnapshotUpdateDiskSources(&diskdata[i], &persist);
if (ret < 0) if (ret < 0)
goto error; goto error;
...@@ -15047,7 +15028,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver, ...@@ -15047,7 +15028,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
do_transaction = true; do_transaction = true;
} }
if (actions && do_transaction) { if (do_transaction) {
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
goto cleanup; goto cleanup;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册