]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_block: add async domain job support to qemuBlockPivot
authorPavel Hrdina <phrdina@redhat.com>
Mon, 5 Dec 2022 11:53:34 +0000 (12:53 +0100)
committerPavel Hrdina <phrdina@redhat.com>
Mon, 9 Jan 2023 12:32:42 +0000 (13:32 +0100)
This will allow to use it while having async domain job active which we
will use when deleting external snapshots.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_block.c
src/qemu/qemu_block.h
src/qemu/qemu_driver.c

index d2a56ba19c8921b2185b54c77806743430c141b1..6a6836270875a6e9f4c827c96478fe1d543e4b81 100644 (file)
@@ -3402,6 +3402,7 @@ qemuBlockCommit(virDomainObj *vm,
 int
 qemuBlockPivot(virDomainObj *vm,
                qemuBlockJobData *job,
+               virDomainAsyncJob asyncJob,
                virDomainDiskDef *disk)
 {
     g_autoptr(qemuBlockStorageSourceChainData) chainattachdata = NULL;
@@ -3487,7 +3488,8 @@ qemuBlockPivot(virDomainObj *vm,
         break;
     }
 
-    qemuDomainObjEnterMonitor(vm);
+    if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0)
+        return -1;
 
     if (chainattachdata) {
         if ((rc = qemuBlockStorageSourceChainAttach(priv->mon, chainattachdata)) == 0) {
index a76d9be71175e3df312acb0a84f532062a87ce22..3f2082f102d1cb290246321548ac2fec7414639b 100644 (file)
@@ -290,4 +290,5 @@ qemuBlockCommit(virDomainObj *vm,
 int
 qemuBlockPivot(virDomainObj *vm,
                qemuBlockJobData *job,
+               virDomainAsyncJob asyncJob,
                virDomainDiskDef *disk);
index f7a7086b3d1aa0cacecc5a08d75095ee2698edb6..970cc29eafa8df8a78dee8881e668673ebcb8b4e 100644 (file)
@@ -14158,7 +14158,7 @@ qemuDomainBlockJobAbort(virDomainPtr dom,
         qemuBlockJobSyncBegin(job);
 
     if (pivot) {
-        if ((ret = qemuBlockPivot(vm, job, disk)) < 0)
+        if ((ret = qemuBlockPivot(vm, job, VIR_ASYNC_JOB_NONE, disk)) < 0)
             goto endjob;
     } else {
         qemuDomainObjEnterMonitor(vm);