If we migrate to fd, spec->fwdType is not MIGRATION_FWD_DIRECT, and
we will close spec->dest.fd.local in qemuMigrationRun(). So we
should set spec->dest.fd.local to -1 in qemuMigrationRun() because
the caller doTunnelMigrate() will close it too.
---
src/qemu/qemu_migration.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 6f42823..b58380b 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1910,8 +1910,10 @@ qemuMigrationRun(struct qemud_driver *driver,
break;
case MIGRATION_DEST_FD:
- if (spec->fwdType != MIGRATION_FWD_DIRECT)
+ if (spec->fwdType != MIGRATION_FWD_DIRECT) {
fd = spec->dest.fd.local;
+ spec->dest.fd.local = -1;
+ }
ret = qemuMonitorMigrateToFd(priv->mon, migrate_flags,
spec->dest.fd.qemu);
VIR_FORCE_CLOSE(spec->dest.fd.qemu);
--
1.7.1