]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: blockjob: Fix saving of inactive XML after completed legacy blockjob
authorPeter Krempa <pkrempa@redhat.com>
Fri, 17 May 2019 08:15:53 +0000 (10:15 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 17 May 2019 11:25:06 +0000 (13:25 +0200)
Commit c257352797 introduced a logic bug where we will never save the
inactive XML after a blockjob as the variable which was determining
whether to do so is cleared right before. Thus even if we correctly
modify the inactive state it will be rolled back when libvirtd is
restarted.

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

index fa7e4c8625d2824311cdf216ece8a016e167dfe1..f105632a09d84a94990b1c9d5a947676d1b7e5d3 100644 (file)
@@ -363,7 +363,7 @@ qemuBlockJobEventProcessLegacy(virQEMUDriverPtr driver,
     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);
 
-    if (job->newstate == VIR_DOMAIN_BLOCK_JOB_COMPLETED && vm->newDef) {
+    if (job->state == VIR_DOMAIN_BLOCK_JOB_COMPLETED && vm->newDef) {
         if (virDomainSaveConfig(cfg->configDir, driver->caps, vm->newDef) < 0)
             VIR_WARN("Unable to update persistent definition on vm %s "
                      "after block job", vm->def->name);