diff mbox

[08/12] migration: ensure we start in NONE state

Message ID 1435740693-10839-9-git-send-email-quintela@redhat.com
State New
Headers show

Commit Message

Juan Quintela July 1, 2015, 8:51 a.m. UTC
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/migration.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Dr. David Alan Gilbert July 1, 2015, 9:29 a.m. UTC | #1
* 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(&params);
> 
>      if (strstart(uri, "tcp:", &p)) {
> -- 
> 2.4.3
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Yang Hongyang July 1, 2015, 9:51 a.m. UTC | #2
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(&params);
>
>       if (strstart(uri, "tcp:", &p)) {
>
diff mbox

Patch

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(&params);

     if (strstart(uri, "tcp:", &p)) {