]> xenbits.xensource.com Git - qemu-upstream-4.3-testing.git/commitdiff
migration: make migrate_fd_wait_for_unfreeze() return errors
authorJuan Quintela <quintela@redhat.com>
Fri, 24 Aug 2012 10:51:48 +0000 (12:51 +0200)
committerJuan Quintela <quintela@redhat.com>
Wed, 17 Oct 2012 16:34:59 +0000 (18:34 +0200)
Adjust all callers

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
buffered_file.c
migration.c
migration.h

index d3bc16083559bc7dc8131a36cecacbb07dab3584..77928f02c118ab9991f45b1a88aa2ec5d105e35f 100644 (file)
@@ -150,8 +150,12 @@ static int buffered_close(void *opaque)
         if (ret < 0) {
             break;
         }
-        if (s->freeze_output)
-            migrate_fd_wait_for_unfreeze(s->migration_state);
+        if (s->freeze_output) {
+            ret = migrate_fd_wait_for_unfreeze(s->migration_state);
+            if (ret < 0) {
+                break;
+            }
+        }
     }
 
     ret2 = migrate_fd_close(s->migration_state);
index ea21dc40e107a740b7f5a7191f42e440f5e77133..2c939514234de204ef6e5004f77c38d929b159a3 100644 (file)
@@ -370,13 +370,13 @@ static void migrate_fd_cancel(MigrationState *s)
     migrate_fd_cleanup(s);
 }
 
-void migrate_fd_wait_for_unfreeze(MigrationState *s)
+int migrate_fd_wait_for_unfreeze(MigrationState *s)
 {
     int ret;
 
     DPRINTF("wait for unfreeze\n");
     if (s->state != MIG_STATE_ACTIVE)
-        return;
+        return -EINVAL;
 
     do {
         fd_set wfds;
@@ -388,8 +388,9 @@ void migrate_fd_wait_for_unfreeze(MigrationState *s)
     } while (ret == -1 && (s->get_error(s)) == EINTR);
 
     if (ret == -1) {
-        qemu_file_set_error(s->file, -s->get_error(s));
+        return -s->get_error(s);
     }
+    return 0;
 }
 
 int migrate_fd_close(MigrationState *s)
index ec022d604f50ef9491cc71983b2e38dbb0acc9d9..1c3e9b750eecedb54579ca22cdfd97844c182397 100644 (file)
@@ -81,7 +81,7 @@ void migrate_fd_connect(MigrationState *s);
 ssize_t migrate_fd_put_buffer(MigrationState *s, const void *data,
                               size_t size);
 void migrate_fd_put_ready(MigrationState *s);
-void migrate_fd_wait_for_unfreeze(MigrationState *s);
+int migrate_fd_wait_for_unfreeze(MigrationState *s);
 int migrate_fd_close(MigrationState *s);
 
 void add_migration_state_change_notifier(Notifier *notify);