]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: blockjob: Update new job state earlier in qemuBlockJobEventProcessLegacy
authorPeter Krempa <pkrempa@redhat.com>
Wed, 17 Jul 2019 14:00:32 +0000 (16:00 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 18 Jul 2019 15:59:34 +0000 (17:59 +0200)
The legacy job handler does not look at the old job state so we can
update it earlier.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_blockjob.c

index 097d87f663f87aa6605855355dd15986b392b7b9..08d131ca2b4080346fa2c4b02fcdc66318c51849 100644 (file)
@@ -350,9 +350,12 @@ qemuBlockJobEventProcessLegacy(virQEMUDriverPtr driver,
 
     qemuBlockJobEmitEvents(driver, vm, disk, job->type, job->newstate);
 
+    job->state = job->newstate;
+    job->newstate = -1;
+
     /* If we completed a block pull or commit, then update the XML
      * to match.  */
-    switch ((virConnectDomainEventBlockJobStatus) job->newstate) {
+    switch ((virConnectDomainEventBlockJobStatus) job->state) {
     case VIR_DOMAIN_BLOCK_JOB_COMPLETED:
         qemuBlockJobEventProcessLegacyCompleted(driver, vm, job, asyncJob);
         break;
@@ -377,9 +380,6 @@ qemuBlockJobEventProcessLegacy(virQEMUDriverPtr driver,
         break;
     }
 
-    job->state = job->newstate;
-    job->newstate = -1;
-
     if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
         VIR_WARN("Unable to save status on vm %s after block job", vm->def->name);
 }