]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: blockjob: Don't emit traditional disk events for jobs without disk
authorPeter Krempa <pkrempa@redhat.com>
Tue, 23 Apr 2019 08:47:01 +0000 (10:47 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 15 Jul 2019 08:26:23 +0000 (10:26 +0200)
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@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_blockjob.c

index a4662342a7243bc6d36d7e5708f0ecdbe421565d..b3bdbeb99065ba445bd1f66584ac8165b484b0ce 100644 (file)
@@ -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)