qemu: avoid closing fd more than once

If we migrate to fd, spec->fwdType is not MIGRATION_FWD_DIRECT,
we will close spec->dest.fd.local in qemuMigrationRun(). So we
should set spec->dest.fd.local to -1 in qemuMigrationRun().

Bug present since 0.9.5 (commit 326176179).
(cherry picked from commit b19c236d69278c967d2d8b4aae97ac76213f1c10)
This commit is contained in:
Wen Congyang 2012-05-30 17:20:44 +08:00 committed by Cole Robinson
parent b5df0ffe74
commit 4e1e20c3a7

View File

@ -1909,8 +1909,10 @@ qemuMigrationRun(struct qemud_driver *driver,
break; break;
case MIGRATION_DEST_FD: case MIGRATION_DEST_FD:
if (spec->fwdType != MIGRATION_FWD_DIRECT) if (spec->fwdType != MIGRATION_FWD_DIRECT) {
fd = spec->dest.fd.local; fd = spec->dest.fd.local;
spec->dest.fd.local = -1;
}
ret = qemuMonitorMigrateToFd(priv->mon, migrate_flags, ret = qemuMonitorMigrateToFd(priv->mon, migrate_flags,
spec->dest.fd.qemu); spec->dest.fd.qemu);
VIR_FORCE_CLOSE(spec->dest.fd.qemu); VIR_FORCE_CLOSE(spec->dest.fd.qemu);