On Wed, Nov 06, 2013 at 04:17:05 +0000, Wangyufei (A) wrote:
>From bfb2dafa8ea183781446c7cbe0376e1a2d41a5ae Mon Sep 17 00:00:00
2001
From: Zeng Junliang <zengjunliang(a)huawei.com>
Date: Wed, 6 Nov 2013 11:36:57 +0800
Subject: [PATCH] qemu: clean up migration ports when migration cancelled
If there's a migration cancelled, the bitmap of migration port should be cleaned up
too.
Signed-off-by: Zeng Junliang <zengjunliang(a)huawei.com>
---
src/qemu/qemu_migration.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 4f35a7a..594d1cd 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -4387,12 +4387,16 @@ qemuMigrationFinish(virQEMUDriverPtr driver,
qemuDomainObjPrivatePtr priv = vm->privateData;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
virCapsPtr caps = NULL;
+ unsigned short port = 0;
No need to initialize port here.
VIR_DEBUG("driver=%p, dconn=%p, vm=%p, cookiein=%s, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, flags=%lx, retcode=%d",
driver, dconn, vm, NULLSTR(cookiein), cookieinlen,
cookieout, cookieoutlen, flags, retcode);
+ port = priv->migrationPort;
+ priv->migrationPort = 0;
+
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
goto cleanup;
@@ -4439,8 +4443,6 @@ qemuMigrationFinish(virQEMUDriverPtr driver,
}
qemuMigrationStopNBDServer(driver, vm, mig);
- virPortAllocatorRelease(driver->migrationPorts, priv->migrationPort);
- priv->migrationPort = 0;
if (flags & VIR_MIGRATE_PERSIST_DEST) {
virDomainDefPtr vmdef;
@@ -4573,6 +4575,7 @@ endjob:
}
cleanup:
+ virPortAllocatorRelease(driver->migrationPorts, port);
if (vm) {
VIR_FREE(priv->origname);
virObjectUnlock(vm);
ACK and pushed. My bad for not spotting thins while reviewing the
original patch.
Jirka