migration: ensure we start in NONE state

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
Juan Quintela 2015-07-01 09:32:29 +02:00
parent a5c17b5f68
commit 656a233440

View File

@ -694,7 +694,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
error_setg(errp, QERR_MIGRATION_ACTIVE); error_setg(errp, QERR_MIGRATION_ACTIVE);
return; return;
} }
if (runstate_check(RUN_STATE_INMIGRATE)) { if (runstate_check(RUN_STATE_INMIGRATE)) {
error_setg(errp, "Guest is waiting for an incoming migration"); error_setg(errp, "Guest is waiting for an incoming migration");
return; return;
@ -709,6 +708,12 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
return; return;
} }
/* We are starting a new migration, so we want to start in a clean
state. This change is only needed if previous migration
failed/was cancelled. We don't use migrate_set_state() because
we are setting the initial state, not changing it. */
s->state = MIGRATION_STATUS_NONE;
s = migrate_init(&params); s = migrate_init(&params);
if (strstart(uri, "tcp:", &p)) { if (strstart(uri, "tcp:", &p)) {