diff options
author | Pavel Hrdina <phrdina@redhat.com> | 2022-03-23 11:11:09 +0100 |
---|---|---|
committer | Pavel Hrdina <phrdina@redhat.com> | 2023-01-09 13:32:50 +0100 |
commit | 06c2382ab9b4182e69b21c20c8ddb98773299d23 (patch) | |
tree | 0b7ef9bfa852938960066d005bedb804ba321bcb /src | |
parent | a784d4076ac68cb3f0837c6d1ff589d94eb24d3d (diff) | |
download | libvirt-06c2382ab9b4182e69b21c20c8ddb98773299d23.tar.gz |
qemu_snapshot: refactor qemuSnapshotDelete
Move code around to make it clear what is called when deleting single
snapshot or children snapshots.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qemu/qemu_snapshot.c | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 8b5bcd9770..4cc74fb092 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -2350,25 +2350,28 @@ qemuSnapshotDelete(virDomainObj *vm, } } } - } else if (snap->nchildren) { - rep.dir = cfg->snapshotDir; - rep.parent = snap->parent; - rep.vm = vm; - rep.err = 0; - rep.xmlopt = driver->xmlopt; - rep.writeMetadata = qemuDomainSnapshotWriteMetadata; - virDomainMomentForEachChild(snap, - qemuSnapshotChildrenReparent, - &rep); - if (rep.err < 0) - goto endjob; - virDomainMomentMoveChildren(snap, snap->parent); - } - if (flags & VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY) { - virDomainMomentDropChildren(snap); - ret = 0; + if (flags & VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY) { + virDomainMomentDropChildren(snap); + ret = 0; + } else { + ret = qemuDomainSnapshotDiscard(driver, vm, snap, true, metadata_only); + } } else { + if (snap->nchildren) { + rep.dir = cfg->snapshotDir; + rep.parent = snap->parent; + rep.vm = vm; + rep.err = 0; + rep.xmlopt = driver->xmlopt; + rep.writeMetadata = qemuDomainSnapshotWriteMetadata; + virDomainMomentForEachChild(snap, + qemuSnapshotChildrenReparent, + &rep); + if (rep.err < 0) + goto endjob; + virDomainMomentMoveChildren(snap, snap->parent); + } ret = qemuDomainSnapshotDiscard(driver, vm, snap, true, metadata_only); } |