diff options
author | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2015-11-05 18:10:57 +0000 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2015-11-10 15:00:26 +0100 |
commit | 36f48567b82e3160bc0df87b8b4f239d55ca73e9 (patch) | |
tree | 4881041d1dbaa33173d578ef7a611738b1c246a5 /migration | |
parent | 4886a1bcb7d7a88da02eefb0f33327c613ac52a3 (diff) |
migration_completion: Take current state
Soon we'll be in either ACTIVE or POSTCOPY_ACTIVE when we
complete migration, and we need to know which we expect to be
in to change state safely.
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r-- | migration/migration.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/migration/migration.c b/migration/migration.c index 9c46472949..85e68bcfe1 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1243,10 +1243,12 @@ static int await_return_path_close_on_source(MigrationState *ms) * The caller 'breaks' the loop when this returns. * * @s: Current migration state + * @current_active_state: The migration state we expect to be in * @*old_vm_running: Pointer to old_vm_running flag * @*start_time: Pointer to time to update */ -static void migration_completion(MigrationState *s, bool *old_vm_running, +static void migration_completion(MigrationState *s, int current_active_state, + bool *old_vm_running, int64_t *start_time) { int ret; @@ -1275,11 +1277,11 @@ static void migration_completion(MigrationState *s, bool *old_vm_running, goto fail; } - migrate_set_state(s, MIGRATION_STATUS_ACTIVE, MIGRATION_STATUS_COMPLETED); + migrate_set_state(s, current_active_state, MIGRATION_STATUS_COMPLETED); return; fail: - migrate_set_state(s, MIGRATION_STATUS_ACTIVE, MIGRATION_STATUS_FAILED); + migrate_set_state(s, current_active_state, MIGRATION_STATUS_FAILED); } /* @@ -1321,7 +1323,8 @@ static void *migration_thread(void *opaque) qemu_savevm_state_iterate(s->file); } else { trace_migration_thread_low_pending(pending_size); - migration_completion(s, &old_vm_running, &start_time); + migration_completion(s, MIGRATION_STATUS_ACTIVE, + &old_vm_running, &start_time); break; } } |