mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu_snapshot: create: refactor endjob in qemuSnapshotCreateXML
The logic of saving metadata doesn't have to be in endjob section as it will only happen if we have successfully created snapshot. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
d9c7985b4f
commit
29a0840475
@ -1814,10 +1814,10 @@ qemuSnapshotCreateXML(virDomainPtr domain,
|
|||||||
* do; we've successfully taken the snapshot, and we are now running
|
* do; we've successfully taken the snapshot, and we are now running
|
||||||
* on it, so we have to go forward the best we can
|
* on it, so we have to go forward the best we can
|
||||||
*/
|
*/
|
||||||
snapshot = virGetDomainSnapshot(domain, snap->def->name);
|
if (!(snapshot = virGetDomainSnapshot(domain, snap->def->name)))
|
||||||
|
goto endjob;
|
||||||
|
|
||||||
endjob:
|
if (!(flags & VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA)) {
|
||||||
if (snapshot && !(flags & VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA)) {
|
|
||||||
if (!redefine || (flags & VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT))
|
if (!redefine || (flags & VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT))
|
||||||
qemuSnapshotSetCurrent(vm, snap);
|
qemuSnapshotSetCurrent(vm, snap);
|
||||||
|
|
||||||
@ -1831,13 +1831,17 @@ qemuSnapshotCreateXML(virDomainPtr domain,
|
|||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("unable to save metadata for snapshot %s"),
|
_("unable to save metadata for snapshot %s"),
|
||||||
snap->def->name);
|
snap->def->name);
|
||||||
virDomainSnapshotObjListRemove(vm->snapshots, snap);
|
goto endjob;
|
||||||
} else {
|
}
|
||||||
|
|
||||||
virDomainSnapshotLinkParent(vm->snapshots, snap);
|
virDomainSnapshotLinkParent(vm->snapshots, snap);
|
||||||
|
snap = NULL;
|
||||||
}
|
}
|
||||||
} else if (snap) {
|
|
||||||
|
endjob:
|
||||||
|
|
||||||
|
if (snap)
|
||||||
virDomainSnapshotObjListRemove(vm->snapshots, snap);
|
virDomainSnapshotObjListRemove(vm->snapshots, snap);
|
||||||
}
|
|
||||||
|
|
||||||
qemuDomainObjEndAsyncJob(driver, vm);
|
qemuDomainObjEndAsyncJob(driver, vm);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user