diff mbox

[09/23] migration: Refactor and simplify error checking in migrate_fd_put_ready

Message ID aeb12e35050347b429066d1390f91bf0061e56bf.1316526970.git.quintela@redhat.com
State New
Headers show

Commit Message

Juan Quintela Sept. 20, 2011, 2:19 p.m. UTC
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration.c |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)
diff mbox

Patch

diff --git a/migration.c b/migration.c
index 59e8f06..9d877a0 100644
--- a/migration.c
+++ b/migration.c
@@ -368,22 +368,21 @@  static void migrate_fd_put_ready(void *opaque)
         DPRINTF("done iterating\n");
         vm_stop(VMSTOP_MIGRATE);

-        if ((qemu_savevm_state_complete(s->mon, s->file)) < 0) {
-            if (old_vm_running) {
-                vm_start();
+        if (qemu_savevm_state_complete(s->mon, s->file) < 0) {
+            migrate_fd_error(s);
+        } else {
+            if (migrate_fd_cleanup(s) < 0) {
+                migrate_fd_error(s);
+            } else {
+                s->state = MIG_STATE_COMPLETED;
+                notifier_list_notify(&migration_state_notifiers, NULL);
             }
-            s->state = MIG_STATE_ERROR;
         }
-        if (migrate_fd_cleanup(s) < 0) {
+        if (s->get_status(s) != MIG_STATE_COMPLETED) {
             if (old_vm_running) {
                 vm_start();
             }
-            s->state = MIG_STATE_ERROR;
         }
-        if (s->state == MIG_STATE_ACTIVE) {
-            s->state = MIG_STATE_COMPLETED;
-        }
-        notifier_list_notify(&migration_state_notifiers, NULL);
     }
 }