]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Properly reset all migration capabilities
authorJiri Denemark <jdenemar@redhat.com>
Wed, 5 Apr 2017 11:05:25 +0000 (13:05 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 7 Apr 2017 11:43:37 +0000 (13:43 +0200)
So far only QEMU_MONITOR_MIGRATION_CAPS_POSTCOPY was reset, but only in
a single code path leaving post-copy enabled in quite a few cases.

https://bugzilla.redhat.com/show_bug.cgi?id=1425003

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_migration.c

index cc3e58c1615f1453422d065a2fc5dc67b5958076..1feb320b8c37703f6005586610ba70e46daab7aa 100644 (file)
@@ -5342,9 +5342,6 @@ qemuMigrationFinish(virQEMUDriverPtr driver,
          */
         if (inPostCopy)
             VIR_FREE(priv->job.completed);
-
-        qemuMigrationSetPostCopy(driver, vm, false,
-                                 QEMU_ASYNC_JOB_MIGRATION_IN);
     }
 
     qemuMigrationReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN);
@@ -5873,9 +5870,16 @@ qemuMigrationReset(virQEMUDriverPtr driver,
                    virDomainObjPtr vm,
                    qemuDomainAsyncJob job)
 {
+    qemuMonitorMigrationCaps cap;
+
     if (!virDomainObjIsActive(vm))
         return;
 
     if (qemuMigrationResetTLS(driver, vm, job) < 0)
         return;
+
+    for (cap = 0; cap < QEMU_MONITOR_MIGRATION_CAPS_LAST; cap++) {
+        if (qemuMigrationSetOption(driver, vm, cap, false, job) < 0)
+            return;
+    }
 }