migration: assert colo instead of check
authorPeter Xu <peterx@redhat.com>
Wed, 3 Jan 2018 12:20:05 +0000 (20:20 +0800)
committerJuan Quintela <quintela@redhat.com>
Mon, 15 Jan 2018 11:48:06 +0000 (12:48 +0100)
When reaching here if we are still "active" it means we must be in colo
state.  After a quick discussion offlist, we decided to use the safer
error_report().

Finally I want to use "switch" here rather than lots of complicated if
clauses.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration/migration.c

index 7a77b193c1100b7d1b0f5973e8ace357f8a860e3..f579752d21ee9fa385c1e1478c52ee4edc846233 100644 (file)
@@ -2348,7 +2348,15 @@ static void *migration_thread(void *opaque)
         }
         runstate_set(RUN_STATE_POSTMIGRATE);
     } else {
-        if (s->state == MIGRATION_STATUS_ACTIVE && enable_colo) {
+        if (s->state == MIGRATION_STATUS_ACTIVE) {
+            /*
+             * We should really assert here, but since it's during
+             * migration, let's try to reduce the usage of assertions.
+             */
+            if (!enable_colo) {
+                error_report("%s: critical error: calling COLO code without "
+                             "COLO enabled", __func__);
+            }
             migrate_start_colo_process(s);
             qemu_savevm_state_cleanup();
             /*