mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
qemu: snapshot: Initialize data for inactive config of snapshot earlier
qemuDomainSnapshotDiskDataCollect copies the source of the disk from the live config into the inactive config. Move this operation earlier so that if we initialize it for use for the particular instance the run-time-only data is not copied. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
47a12f2752
commit
22a9f08572
@ -15114,6 +15114,22 @@ qemuDomainSnapshotDiskDataCollect(virQEMUDriverPtr driver,
|
||||
if (virStorageSourceInitChainElement(dd->src, dd->disk->src, false) < 0)
|
||||
goto cleanup;
|
||||
|
||||
/* Note that it's unsafe to assume that the disks in the persistent
|
||||
* definition match up with the disks in the live definition just by
|
||||
* checking that the target name is the same. We've done that
|
||||
* historically this way though. */
|
||||
if (vm->newDef &&
|
||||
(dd->persistdisk = virDomainDiskByName(vm->newDef, dd->disk->dst,
|
||||
false))) {
|
||||
|
||||
if (!(dd->persistsrc = virStorageSourceCopy(dd->src, false)))
|
||||
goto cleanup;
|
||||
|
||||
if (virStorageSourceInitChainElement(dd->persistsrc,
|
||||
dd->persistdisk->src, false) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (qemuDomainStorageFileInit(driver, vm, dd->src, NULL) < 0)
|
||||
goto cleanup;
|
||||
|
||||
@ -15131,22 +15147,6 @@ qemuDomainSnapshotDiskDataCollect(virQEMUDriverPtr driver,
|
||||
VIR_FREE(backingStoreStr);
|
||||
}
|
||||
}
|
||||
|
||||
/* Note that it's unsafe to assume that the disks in the persistent
|
||||
* definition match up with the disks in the live definition just by
|
||||
* checking that the target name is the same. We've done that
|
||||
* historically this way though. */
|
||||
if (vm->newDef &&
|
||||
(dd->persistdisk = virDomainDiskByName(vm->newDef, dd->disk->dst,
|
||||
false))) {
|
||||
|
||||
if (!(dd->persistsrc = virStorageSourceCopy(dd->src, false)))
|
||||
goto cleanup;
|
||||
|
||||
if (virStorageSourceInitChainElement(dd->persistsrc,
|
||||
dd->persistdisk->src, false) < 0)
|
||||
goto cleanup;
|
||||
}
|
||||
}
|
||||
|
||||
VIR_STEAL_PTR(*rdata, data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user