aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--migration/migration.c7
-rw-r--r--migration/migration.h2
-rw-r--r--migration/savevm.c5
3 files changed, 7 insertions, 7 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 913f658c3e..0aa596f867 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1258,10 +1258,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
@@ -1291,7 +1289,6 @@ MigrationState *migrate_init(void)
s->vm_was_running = false;
s->iteration_initial_bytes = 0;
s->threshold_size = 0;
- return s;
}
static GSList *migration_blockers;
@@ -1399,7 +1396,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 f515b8994f..82cf926b17 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -193,7 +193,7 @@ void migrate_fd_error(MigrationState *s, const Error *error);
void migrate_fd_connect(MigrationState *s, Error *error_in);
-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 967c3bca0d..8e6d872452 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -1257,8 +1257,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)) {