]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Make sure migrationPort is released even in callbacks
authorJiri Denemark <jdenemar@redhat.com>
Tue, 10 May 2022 13:20:25 +0000 (15:20 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 7 Jun 2022 15:40:20 +0000 (17:40 +0200)
Normally migrationPort is released in the Finish phase, but we need to
make sure it is properly released also in case qemuMigrationDstFinish is
not called at all. Currently the only callback which is called in this
situation qemuMigrationDstPrepareCleanup which already releases
migrationPort. This patch adds similar handling to additional callbacks
which will be used in the future.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_migration.c
src/qemu/qemu_process.c

index 1ce6ab6f7f67d60abc32e52f8e54492117b56e63..331386663e32ea2c3002b189339c091221ad8e4f 100644 (file)
@@ -5821,6 +5821,9 @@ qemuMigrationDstComplete(virQEMUDriver *driver,
 
     qemuMigrationParamsReset(driver, vm, asyncJob, jobPriv->migParams,
                              priv->job.apiFlags);
+
+    virPortAllocatorRelease(priv->migrationPort);
+    priv->migrationPort = 0;
 }
 
 
index b039108ff79e5e446a8784dbec13c96b710174bd..d3769de4961a1b88cd8491a9737cff289ef7d189 100644 (file)
@@ -3437,6 +3437,8 @@ qemuProcessCleanupMigrationJob(virQEMUDriver *driver,
         priv->job.asyncJob != VIR_ASYNC_JOB_MIGRATION_OUT)
         return;
 
+    virPortAllocatorRelease(priv->migrationPort);
+    priv->migrationPort = 0;
     qemuDomainObjDiscardAsyncJob(vm);
 }