mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-03 10:25:16 +00:00
qemu: block: Extract calls of qemuBlockGetNamedNodeData into a helper function
Create a wrapper for qemuBlockGetNamedNodeData named qemuBlockGetNamedNodeData. The purpose of the wrapper is to integrate the monitor handling functionality and in the future possible qemuCaps-based flags. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
8e94e29010
commit
5ddfac1169
@ -830,10 +830,7 @@ qemuBackupBegin(virDomainObjPtr vm,
|
|||||||
goto endjob;
|
goto endjob;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qemuDomainObjEnterMonitorAsync(priv->driver, vm, QEMU_ASYNC_JOB_BACKUP) < 0)
|
if (!(blockNamedNodeData = qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_JOB_BACKUP)))
|
||||||
goto endjob;
|
|
||||||
blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon);
|
|
||||||
if (qemuDomainObjExitMonitor(priv->driver, vm) < 0 || !blockNamedNodeData)
|
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if ((ndd = qemuBackupDiskPrepareData(vm, def, incremental, blockNamedNodeData,
|
if ((ndd = qemuBackupDiskPrepareData(vm, def, incremental, blockNamedNodeData,
|
||||||
|
@ -2670,3 +2670,23 @@ qemuBlockNamedNodeDataGetBitmapByName(virHashTablePtr blockNamedNodeData,
|
|||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
virHashTablePtr
|
||||||
|
qemuBlockGetNamedNodeData(virDomainObjPtr vm,
|
||||||
|
qemuDomainAsyncJob asyncJob)
|
||||||
|
{
|
||||||
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
|
virQEMUDriverPtr driver = priv->driver;
|
||||||
|
g_autoptr(virHashTable) blockNamedNodeData = NULL;
|
||||||
|
|
||||||
|
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon);
|
||||||
|
|
||||||
|
if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockNamedNodeData)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return g_steal_pointer(&blockNamedNodeData);
|
||||||
|
}
|
||||||
|
@ -208,3 +208,7 @@ qemuBlockNamedNodeDataBitmapPtr
|
|||||||
qemuBlockNamedNodeDataGetBitmapByName(virHashTablePtr blockNamedNodeData,
|
qemuBlockNamedNodeDataGetBitmapByName(virHashTablePtr blockNamedNodeData,
|
||||||
virStorageSourcePtr src,
|
virStorageSourcePtr src,
|
||||||
const char *bitmap);
|
const char *bitmap);
|
||||||
|
|
||||||
|
virHashTablePtr
|
||||||
|
qemuBlockGetNamedNodeData(virDomainObjPtr vm,
|
||||||
|
qemuDomainAsyncJob asyncJob);
|
||||||
|
@ -15642,15 +15642,9 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
|
|||||||
if (!(actions = virJSONValueNewArray()))
|
if (!(actions = virJSONValueNewArray()))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (blockdev) {
|
if (blockdev &&
|
||||||
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
|
!(blockNamedNodeData = qemuBlockGetNamedNodeData(vm, asyncJob)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon);
|
|
||||||
|
|
||||||
if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockNamedNodeData)
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 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 */
|
||||||
@ -18354,9 +18348,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
|
|||||||
priv->qemuCaps)))
|
priv->qemuCaps)))
|
||||||
goto endjob;
|
goto endjob;
|
||||||
} else {
|
} else {
|
||||||
qemuDomainObjEnterMonitor(driver, vm);
|
if (!(blockNamedNodeData = qemuBlockGetNamedNodeData(vm, QEMU_ASYNC_JOB_NONE)))
|
||||||
blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon);
|
|
||||||
if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockNamedNodeData)
|
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (qemuBlockStorageSourceCreateDetectSize(blockNamedNodeData,
|
if (qemuBlockStorageSourceCreateDetectSize(blockNamedNodeData,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user