From 059f896cefb2776181e39d9ba69345bd9d07d52b Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 22 Feb 2013 17:36:32 +0100 Subject: migration: eliminate last_round We will go around the loop exactly once after setting last_round. Eliminate the variable altogether. Reviewed-by: Orit Wasserman Reviewed-by: Juan Quintela Signed-off-by: Paolo Bonzini Signed-off-by: Juan Quintela --- migration.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'migration.c') diff --git a/migration.c b/migration.c index 861b1245b0..612ffa7438 100644 --- a/migration.c +++ b/migration.c @@ -626,7 +626,6 @@ static void *migration_thread(void *opaque) int64_t max_size = 0; int64_t start_time = initial_time; bool old_vm_running = false; - bool last_round = false; DPRINTF("beginning savevm\n"); qemu_savevm_state_begin(s->file, &s->params); @@ -650,8 +649,11 @@ static void *migration_thread(void *opaque) vm_stop_force_state(RUN_STATE_FINISH_MIGRATE); s->xfer_limit = INT_MAX; qemu_savevm_state_complete(s->file); - last_round = true; qemu_mutex_unlock_iothread(); + if (!qemu_file_get_error(s->file)) { + migrate_finish_set_state(s, MIG_STATE_COMPLETED); + break; + } } } @@ -675,15 +677,13 @@ static void *migration_thread(void *opaque) sleep_time = 0; initial_time = current_time; } - if (!last_round && (s->bytes_xfer >= s->xfer_limit)) { + if (s->bytes_xfer >= s->xfer_limit) { /* usleep expects microseconds */ g_usleep((initial_time + BUFFER_DELAY - current_time)*1000); sleep_time += qemu_get_clock_ms(rt_clock) - current_time; } if (qemu_file_get_error(s->file)) { migrate_finish_set_state(s, MIG_STATE_ERROR); - } else if (last_round) { - migrate_finish_set_state(s, MIG_STATE_COMPLETED); } } @@ -695,7 +695,6 @@ static void *migration_thread(void *opaque) runstate_set(RUN_STATE_POSTMIGRATE); } else { if (old_vm_running) { - assert(last_round); vm_start(); } } -- cgit v1.2.1