From: Peter Krempa Date: Tue, 3 Jul 2018 05:52:11 +0000 (+0200) Subject: qemu: snapshot: Unify conditions checking whether snapshot needs to be taken X-Git-Tag: v4.6.0-rc1~161 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c5dc734403fd01457a819a7c5702b4ed0ecdc002;p=thirdparty%2Flibvirt.git qemu: snapshot: Unify conditions checking whether snapshot needs to be taken In the cleanup path we already checked whether a snapshot needed to be taken by looking into the collected data. Use the same approach when creating the snapshot command data and when committing the changes to the domain definition. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3f1d4c3d50..abc175ec82 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -15015,7 +15015,7 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver, * VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL with a valid file name and * qcow2 format. */ for (i = 0; i < snap->def->ndisks; i++) { - if (snap->def->disks[i].snapshot == VIR_DOMAIN_SNAPSHOT_LOCATION_NONE) + if (!diskdata[i].src) continue; ret = qemuDomainSnapshotCreateSingleDiskActive(driver, vm, @@ -15039,8 +15039,14 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver, goto error; } - for (i = 0; i < snap->def->ndisks; i++) - qemuDomainSnapshotUpdateDiskSources(&diskdata[i], &persist); + for (i = 0; i < snap->def->ndisks; i++) { + qemuDomainSnapshotDiskDataPtr dd = &diskdata[i]; + + if (!dd->src) + continue; + + qemuDomainSnapshotUpdateDiskSources(dd, &persist); + } } error: