[Qemu-devel] [RFC v2 15/33] migration: pass MigrationState to migrate_init()

Peter Xu posted 33 patches 8 years, 5 months ago
There is a newer version of this series
[Qemu-devel] [RFC v2 15/33] migration: pass MigrationState to migrate_init()
Posted by Peter Xu 8 years, 5 months ago
Let the callers take the object, then pass it to migrate_init().

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 migration/migration.c | 7 ++-----
 migration/migration.h | 2 +-
 migration/savevm.c    | 5 ++++-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/migration/migration.c b/migration/migration.c
index 394e84b..15b8eb1 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1138,10 +1138,8 @@ bool migration_is_idle(void)
     return false;
 }
 
-MigrationState *migrate_init(void)
+void migrate_init(MigrationState *s)
 {
-    MigrationState *s = migrate_get_current();
-
     /*
      * Reinitialise all migration state, except
      * parameters/capabilities that the user set, and
@@ -1169,7 +1167,6 @@ MigrationState *migrate_init(void)
     migrate_set_state(&s->state, MIGRATION_STATUS_NONE, MIGRATION_STATUS_SETUP);
 
     s->total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
-    return s;
 }
 
 static GSList *migration_blockers;
@@ -1277,7 +1274,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
         migrate_set_block_incremental(s, true);
     }
 
-    s = migrate_init();
+    migrate_init(s);
 
     if (strstart(uri, "tcp:", &p)) {
         tcp_start_outgoing_migration(s, p, &local_err);
diff --git a/migration/migration.h b/migration/migration.h
index 338dfe3..b78b9bd 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -169,7 +169,7 @@ void migrate_fd_error(MigrationState *s, const Error *error);
 
 void migrate_fd_connect(MigrationState *s);
 
-MigrationState *migrate_init(void);
+void migrate_init(MigrationState *s);
 bool migration_is_blocked(Error **errp);
 /* True if outgoing migration has entered postcopy phase */
 bool migration_in_postcopy(void);
diff --git a/migration/savevm.c b/migration/savevm.c
index a3162c1..c9bccf7 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1224,8 +1224,11 @@ void qemu_savevm_state_cleanup(void)
 static int qemu_savevm_state(QEMUFile *f, Error **errp)
 {
     int ret;
-    MigrationState *ms = migrate_init();
+    MigrationState *ms = migrate_get_current();
     MigrationStatus status;
+
+    migrate_init(ms);
+
     ms->to_dst_file = f;
 
     if (migration_is_blocked(errp)) {
-- 
2.7.4


Re: [Qemu-devel] [RFC v2 15/33] migration: pass MigrationState to migrate_init()
Posted by Dr. David Alan Gilbert 8 years, 4 months ago
* Peter Xu (peterx@redhat.com) wrote:
> Let the callers take the object, then pass it to migrate_init().
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  migration/migration.c | 7 ++-----
>  migration/migration.h | 2 +-
>  migration/savevm.c    | 5 ++++-
>  3 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/migration/migration.c b/migration/migration.c
> index 394e84b..15b8eb1 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -1138,10 +1138,8 @@ bool migration_is_idle(void)
>      return false;
>  }
>  
> -MigrationState *migrate_init(void)
> +void migrate_init(MigrationState *s)
>  {
> -    MigrationState *s = migrate_get_current();
> -
>      /*
>       * Reinitialise all migration state, except
>       * parameters/capabilities that the user set, and
> @@ -1169,7 +1167,6 @@ MigrationState *migrate_init(void)
>      migrate_set_state(&s->state, MIGRATION_STATUS_NONE, MIGRATION_STATUS_SETUP);
>  
>      s->total_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
> -    return s;
>  }
>  
>  static GSList *migration_blockers;
> @@ -1277,7 +1274,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
>          migrate_set_block_incremental(s, true);
>      }
>  
> -    s = migrate_init();
> +    migrate_init(s);
>  
>      if (strstart(uri, "tcp:", &p)) {
>          tcp_start_outgoing_migration(s, p, &local_err);
> diff --git a/migration/migration.h b/migration/migration.h
> index 338dfe3..b78b9bd 100644
> --- a/migration/migration.h
> +++ b/migration/migration.h
> @@ -169,7 +169,7 @@ void migrate_fd_error(MigrationState *s, const Error *error);
>  
>  void migrate_fd_connect(MigrationState *s);
>  
> -MigrationState *migrate_init(void);
> +void migrate_init(MigrationState *s);
>  bool migration_is_blocked(Error **errp);
>  /* True if outgoing migration has entered postcopy phase */
>  bool migration_in_postcopy(void);
> diff --git a/migration/savevm.c b/migration/savevm.c
> index a3162c1..c9bccf7 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -1224,8 +1224,11 @@ void qemu_savevm_state_cleanup(void)
>  static int qemu_savevm_state(QEMUFile *f, Error **errp)
>  {
>      int ret;
> -    MigrationState *ms = migrate_init();
> +    MigrationState *ms = migrate_get_current();
>      MigrationStatus status;
> +
> +    migrate_init(ms);
> +
>      ms->to_dst_file = f;
>  
>      if (migration_is_blocked(errp)) {
> -- 
> 2.7.4
> 
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK