[PATCH 5/8] qemu: blockjob: Allow NULL 'mirror' for block copy jobs due to migration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The non-shared-storage migration tracks the storage source used
explicitly in the migration data so we must allow for processing of the
block job which has NULL mirror as the mirror will not be populated.

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 src/qemu/qemu_blockjob.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c
index baa79ea80c..2773acc990 100644
--- a/src/qemu/qemu_blockjob.c
+++ b/src/qemu/qemu_blockjob.c
@@ -1139,7 +1139,9 @@ qemuBlockJobProcessEventConcludedCopyPivot(virQEMUDriverPtr driver,
 {
     VIR_DEBUG("copy job '%s' on VM '%s' pivoted", job->name, vm->def->name);

-    if (!job->disk)
+    /* mirror may be NULL for copy job corresponding to migragion */
+    if (!job->disk ||
+        !job->disk->mirror)
         return;

     /* for shallow copy without reusing external image the user can either not
@@ -1166,7 +1168,9 @@ qemuBlockJobProcessEventConcludedCopyAbort(virQEMUDriverPtr driver,
 {
     VIR_DEBUG("copy job '%s' on VM '%s' aborted", job->name, vm->def->name);

-    if (!job->disk)
+    /* mirror may be NULL for copy job corresponding to migragion */
+    if (!job->disk ||
+        !job->disk->mirror)
         return;

     qemuBlockJobEventProcessConcludedRemoveChain(driver, vm, asyncJob, job->disk->mirror);
@@ -1383,7 +1387,8 @@ qemuBlockJobEventProcess(virQEMUDriverPtr driver,
         break;

     case QEMU_BLOCKJOB_STATE_READY:
-        if (job->disk && job->disk->mirror) {
+        /* mirror may be NULL for copy job corresponding to migragion */
+        if (job->disk) {
             job->disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_READY;
             qemuBlockJobEmitEvents(driver, vm, job->disk, job->type, job->newstate);
         }
-- 
2.23.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux