Message ID | 1435740693-10839-9-git-send-email-quintela@redhat.com |
---|---|
State | New |
Headers | show |
* Juan Quintela (quintela@redhat.com) wrote: > Signed-off-by: Juan Quintela <quintela@redhat.com> > --- > migration/migration.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/migration/migration.c b/migration/migration.c > index cfcc227..c5b778b 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -693,7 +693,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, > error_setg(errp, QERR_MIGRATION_ACTIVE); > return; > } > - > if (runstate_check(RUN_STATE_INMIGRATE)) { > error_setg(errp, "Guest is waiting for an incoming migration"); > return; > @@ -708,6 +707,12 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, > 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; > + Yes, I think that should work; we've already checked which state we're in, so we can't already be running a migration at this point, and this would be run from the main thread. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > s = migrate_init(¶ms); > > if (strstart(uri, "tcp:", &p)) { > -- > 2.4.3 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 07/01/2015 04:51 PM, Juan Quintela wrote: > Signed-off-by: Juan Quintela <quintela@redhat.com> > --- > migration/migration.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/migration/migration.c b/migration/migration.c > index cfcc227..c5b778b 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -693,7 +693,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, > error_setg(errp, QERR_MIGRATION_ACTIVE); > return; > } > - suspicious blank line removal? > if (runstate_check(RUN_STATE_INMIGRATE)) { > error_setg(errp, "Guest is waiting for an incoming migration"); > return; > @@ -708,6 +707,12 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, > 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(¶ms); > > if (strstart(uri, "tcp:", &p)) { >
diff --git a/migration/migration.c b/migration/migration.c index cfcc227..c5b778b 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -693,7 +693,6 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, error_setg(errp, QERR_MIGRATION_ACTIVE); return; } - if (runstate_check(RUN_STATE_INMIGRATE)) { error_setg(errp, "Guest is waiting for an incoming migration"); return; @@ -708,6 +707,12 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk, 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(¶ms); if (strstart(uri, "tcp:", &p)) {
Signed-off-by: Juan Quintela <quintela@redhat.com> --- migration/migration.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)