mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemuSnapshotDiskPrepare/Cleanup: simplify passing of 'driver' and 'blockdev'
Both can be fetched from 'vm'. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
eb4aa7b109
commit
a09c82cbd5
@ -792,10 +792,11 @@ typedef qemuSnapshotDiskData *qemuSnapshotDiskDataPtr;
|
|||||||
static void
|
static void
|
||||||
qemuSnapshotDiskCleanup(qemuSnapshotDiskDataPtr data,
|
qemuSnapshotDiskCleanup(qemuSnapshotDiskDataPtr data,
|
||||||
size_t ndata,
|
size_t ndata,
|
||||||
virQEMUDriverPtr driver,
|
|
||||||
virDomainObjPtr vm,
|
virDomainObjPtr vm,
|
||||||
qemuDomainAsyncJob asyncJob)
|
qemuDomainAsyncJob asyncJob)
|
||||||
{
|
{
|
||||||
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
virQEMUDriverPtr driver = priv->driver;
|
||||||
virErrorPtr orig_err;
|
virErrorPtr orig_err;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
@ -931,18 +932,19 @@ qemuSnapshotDiskPrepareOneBlockdev(virQEMUDriverPtr driver,
|
|||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
qemuSnapshotDiskPrepareOne(virQEMUDriverPtr driver,
|
qemuSnapshotDiskPrepareOne(virDomainObjPtr vm,
|
||||||
virDomainObjPtr vm,
|
|
||||||
virQEMUDriverConfigPtr cfg,
|
virQEMUDriverConfigPtr cfg,
|
||||||
virDomainDiskDefPtr disk,
|
virDomainDiskDefPtr disk,
|
||||||
virDomainSnapshotDiskDefPtr snapdisk,
|
virDomainSnapshotDiskDefPtr snapdisk,
|
||||||
qemuSnapshotDiskDataPtr dd,
|
qemuSnapshotDiskDataPtr dd,
|
||||||
virHashTablePtr blockNamedNodeData,
|
virHashTablePtr blockNamedNodeData,
|
||||||
bool reuse,
|
bool reuse,
|
||||||
bool blockdev,
|
|
||||||
qemuDomainAsyncJob asyncJob,
|
qemuDomainAsyncJob asyncJob,
|
||||||
virJSONValuePtr actions)
|
virJSONValuePtr actions)
|
||||||
{
|
{
|
||||||
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
virQEMUDriverPtr driver = priv->driver;
|
||||||
|
bool blockdev = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
|
||||||
virDomainDiskDefPtr persistdisk;
|
virDomainDiskDefPtr persistdisk;
|
||||||
bool supportsCreate;
|
bool supportsCreate;
|
||||||
bool updateRelativeBacking = false;
|
bool updateRelativeBacking = false;
|
||||||
@ -1045,12 +1047,10 @@ qemuSnapshotDiskPrepareOne(virQEMUDriverPtr driver,
|
|||||||
* that are selected for the snapshot.
|
* that are selected for the snapshot.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
qemuSnapshotDiskPrepare(virQEMUDriverPtr driver,
|
qemuSnapshotDiskPrepare(virDomainObjPtr vm,
|
||||||
virDomainObjPtr vm,
|
|
||||||
virDomainMomentObjPtr snap,
|
virDomainMomentObjPtr snap,
|
||||||
virQEMUDriverConfigPtr cfg,
|
virQEMUDriverConfigPtr cfg,
|
||||||
bool reuse,
|
bool reuse,
|
||||||
bool blockdev,
|
|
||||||
virHashTablePtr blockNamedNodeData,
|
virHashTablePtr blockNamedNodeData,
|
||||||
qemuDomainAsyncJob asyncJob,
|
qemuDomainAsyncJob asyncJob,
|
||||||
qemuSnapshotDiskDataPtr *rdata,
|
qemuSnapshotDiskDataPtr *rdata,
|
||||||
@ -1070,11 +1070,11 @@ qemuSnapshotDiskPrepare(virQEMUDriverPtr driver,
|
|||||||
if (snapdef->disks[i].snapshot == VIR_DOMAIN_SNAPSHOT_LOCATION_NONE)
|
if (snapdef->disks[i].snapshot == VIR_DOMAIN_SNAPSHOT_LOCATION_NONE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (qemuSnapshotDiskPrepareOne(driver, vm, cfg, vm->def->disks[i],
|
if (qemuSnapshotDiskPrepareOne(vm, cfg, vm->def->disks[i],
|
||||||
snapdef->disks + i,
|
snapdef->disks + i,
|
||||||
data + ndata++,
|
data + ndata++,
|
||||||
blockNamedNodeData,
|
blockNamedNodeData,
|
||||||
reuse, blockdev,
|
reuse,
|
||||||
asyncJob,
|
asyncJob,
|
||||||
actions) < 0)
|
actions) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -1085,7 +1085,7 @@ qemuSnapshotDiskPrepare(virQEMUDriverPtr driver,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
qemuSnapshotDiskCleanup(data, ndata, driver, vm, asyncJob);
|
qemuSnapshotDiskCleanup(data, ndata, vm, asyncJob);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1166,7 +1166,6 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPtr driver,
|
|||||||
bool reuse = (flags & VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT) != 0;
|
bool reuse = (flags & VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT) != 0;
|
||||||
qemuSnapshotDiskDataPtr diskdata = NULL;
|
qemuSnapshotDiskDataPtr diskdata = NULL;
|
||||||
size_t ndiskdata = 0;
|
size_t ndiskdata = 0;
|
||||||
bool blockdev = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV);
|
|
||||||
|
|
||||||
if (virDomainObjCheckActive(vm) < 0)
|
if (virDomainObjCheckActive(vm) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@ -1175,7 +1174,7 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPtr driver,
|
|||||||
|
|
||||||
/* prepare a list of objects to use in the vm definition so that we don't
|
/* prepare a list of objects to use in the vm definition so that we don't
|
||||||
* have to roll back later */
|
* have to roll back later */
|
||||||
if (qemuSnapshotDiskPrepare(driver, vm, snap, cfg, reuse, blockdev,
|
if (qemuSnapshotDiskPrepare(vm, snap, cfg, reuse,
|
||||||
blockNamedNodeData, asyncJob,
|
blockNamedNodeData, asyncJob,
|
||||||
&diskdata, &ndiskdata, actions) < 0)
|
&diskdata, &ndiskdata, actions) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -1214,7 +1213,7 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPtr driver,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
qemuSnapshotDiskCleanup(diskdata, ndiskdata, driver, vm, asyncJob);
|
qemuSnapshotDiskCleanup(diskdata, ndiskdata, vm, asyncJob);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user