Commit 39b9e179 authored by Peter Xu's avatar Peter Xu Committed by Juan Quintela
Browse files

migration: use switch at the end of migration



It converts the old if clauses into switch, explicitly mentions the
possible migration states.  The old nested "if"s are not clear on what
we do on different states.

Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
Signed-off-by: default avatarJuan Quintela <quintela@redhat.com>
parent cf011f08
Loading
Loading
Loading
Loading
+27 −17
Original line number Diff line number Diff line
@@ -2341,11 +2341,13 @@ static void *migration_thread(void *opaque)
    cpu_throttle_stop();

    qemu_mutex_lock_iothread();
    if (s->state == MIGRATION_STATUS_COMPLETED) {
    switch (s->state) {
    case MIGRATION_STATUS_COMPLETED:
        migration_calculate_complete(s);
        runstate_set(RUN_STATE_POSTMIGRATE);
    } else {
        if (s->state == MIGRATION_STATUS_ACTIVE) {
        break;

    case MIGRATION_STATUS_ACTIVE:
        /*
         * We should really assert here, but since it's during
         * migration, let's try to reduce the usage of assertions.
@@ -2360,7 +2362,9 @@ static void *migration_thread(void *opaque)
         * After exited COLO, we will keep running.
         */
        s->vm_was_running = true;
        }
        /* Fallthrough */
    case MIGRATION_STATUS_FAILED:
    case MIGRATION_STATUS_CANCELLED:
        if (s->vm_was_running) {
            vm_start();
        } else {
@@ -2368,6 +2372,12 @@ static void *migration_thread(void *opaque)
                runstate_set(RUN_STATE_POSTMIGRATE);
            }
        }
        break;

    default:
        /* Should not reach here, but if so, forgive the VM. */
        error_report("%s: Unknown ending state %d", __func__, s->state);
        break;
    }
    qemu_bh_schedule(s->cleanup_bh);
    qemu_mutex_unlock_iothread();