1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

qemu_block: introduce qemuBlockFinalize

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Pavel Hrdina 2022-07-13 10:16:48 +02:00
parent 11e30faf75
commit 47cc6470f2
2 changed files with 37 additions and 0 deletions

View File

@ -3525,3 +3525,35 @@ qemuBlockPivot(virDomainObj *vm,
return ret;
}
/**
* qemuBlockFinalize:
* @vm: domain object
* @job: qemu block job data object
* @asyncJob: qemu async job type
*
* When qemu job is started with autofinalize disabled it will wait in pending
* state for block job finalize to be called manually in order to finish the
* job. This is useful when we are running jobs on multiple disks to make
* a synchronization point before we finish.
*
* Return -1 on error, 0 on success.
*/
int
qemuBlockFinalize(virDomainObj *vm,
qemuBlockJobData *job,
virDomainAsyncJob asyncJob)
{
int ret;
qemuDomainObjPrivate *priv = vm->privateData;
if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0)
return -1;
ret = qemuMonitorJobFinalize(priv->mon, job->name);
qemuDomainObjExitMonitor(vm);
return ret;
}

View File

@ -293,3 +293,8 @@ qemuBlockPivot(virDomainObj *vm,
qemuBlockJobData *job,
virDomainAsyncJob asyncJob,
virDomainDiskDef *disk);
int
qemuBlockFinalize(virDomainObj *vm,
qemuBlockJobData *job,
virDomainAsyncJob asyncJob);