]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: blockjob: Make sure that internal states are not reported as event
authorPeter Krempa <pkrempa@redhat.com>
Thu, 24 Jan 2019 08:49:26 +0000 (09:49 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 29 Jan 2019 12:41:16 +0000 (13:41 +0100)
While the callers should make sure that they don't call
qemuBlockJobEmitEvents for any internal state or job, let's add checks
that prevents us from emitting wrong events altogether.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
src/qemu/qemu_blockjob.c

index 9b638b7ef6e2db3d1f7c60f83cd51f1ddd0e581a..2f9f2b5b04e030f24b5a87695f0502b1ad12c919 100644 (file)
@@ -214,6 +214,11 @@ qemuBlockJobEmitEvents(virQEMUDriverPtr driver,
     virObjectEventPtr event = NULL;
     virObjectEventPtr event2 = NULL;
 
+    /* don't emit events for internal jobs and states */
+    if (type >= VIR_DOMAIN_BLOCK_JOB_TYPE_LAST ||
+        status >= VIR_DOMAIN_BLOCK_JOB_LAST)
+        return;
+
     if (virStorageSourceIsLocalStorage(disk->src) &&
         !virStorageSourceIsEmpty(disk->src)) {
         event = virDomainEventBlockJobNewFromObj(vm, virDomainDiskGetSource(disk),