[libvirt] [PATCH 2/4] qemu: blockjob: Don't emit traditional disk events for jobs without disk

Peter Krempa pkrempa at redhat.com
Thu Jul 11 14:56:03 UTC 2019

With -blockdev it will be possible that a block job loses the disk that
was used to start it to a guest-initiated hot-unplug. Don't emit the
block job events in that case as we can't report the top level source or
disk target for an unplugged (and potentially replugged with different
source) disk.

Eventually when we add machinery for tracking jobs globally for a VM the
event will be reinstated via the domain job event.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
 src/qemu/qemu_blockjob.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c
index a4662342a7..b3bdbeb990 100644
--- a/src/qemu/qemu_blockjob.c
+++ b/src/qemu/qemu_blockjob.c
@@ -216,6 +216,10 @@ qemuBlockJobEmitEvents(virQEMUDriverPtr driver,
     virObjectEventPtr event = NULL;
     virObjectEventPtr event2 = NULL;

+    /* don't emit events for jobs without disk */
+    if (!disk)
+        return;
     /* don't emit events for internal jobs and states */
     if (type >= VIR_DOMAIN_BLOCK_JOB_TYPE_LAST ||
         status >= VIR_DOMAIN_BLOCK_JOB_LAST)

More information about the libvir-list mailing list