]> git.proxmox.com Git - qemu.git/commitdiff
migration: clean up server sockets and handlers before invoking process_incoming_migr...
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 7 Aug 2012 08:49:13 +0000 (10:49 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 2 Nov 2012 17:35:07 +0000 (18:35 +0100)
A first step towards making a common "suffix" for all migration protocols,
and moving it to process_incoming_migration.

Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
migration-exec.c
migration-fd.c
migration-tcp.c
migration-unix.c

index 452bf071f13bb1e147d84e8b70b66f3d55bbb825..014c60f01d02cfcd50c55ab72bc875f5a3f5974c 100644 (file)
@@ -87,8 +87,8 @@ static void exec_accept_incoming_migration(void *opaque)
 {
     QEMUFile *f = opaque;
 
-    process_incoming_migration(f);
     qemu_set_fd_handler2(qemu_get_fd(f), NULL, NULL, NULL, NULL);
+    process_incoming_migration(f);
     qemu_fclose(f);
 }
 
index b47b222e887049ba0e06cd1d11655427f85383c4..a4cd83ff7cc43fd26668e9c86c904aa0aa575da2 100644 (file)
@@ -92,8 +92,8 @@ static void fd_accept_incoming_migration(void *opaque)
 {
     QEMUFile *f = opaque;
 
-    process_incoming_migration(f);
     qemu_set_fd_handler2(qemu_get_fd(f), NULL, NULL, NULL, NULL);
+    process_incoming_migration(f);
     qemu_fclose(f);
 }
 
index 46f6ac545cb08b9347e7e020017b58eac7d22a73..96a832caa867ee74891dd4c9a0ef393e2af3f850 100644 (file)
@@ -88,12 +88,14 @@ static void tcp_accept_incoming_migration(void *opaque)
     do {
         c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen);
     } while (c == -1 && socket_error() == EINTR);
+    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
+    close(s);
 
     DPRINTF("accepted migration\n");
 
     if (c == -1) {
         fprintf(stderr, "could not accept migration connection\n");
-        goto out2;
+        goto out;
     }
 
     f = qemu_fopen_socket(c);
@@ -106,9 +108,6 @@ static void tcp_accept_incoming_migration(void *opaque)
     qemu_fclose(f);
 out:
     close(c);
-out2:
-    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
-    close(s);
 }
 
 void tcp_start_incoming_migration(const char *host_port, Error **errp)
index ed3db3a39a9641017e5bdbbbd7d85d0ac38403cb..5dc49cdf0fdf471550bc9bc551ebee68db6de671 100644 (file)
@@ -88,12 +88,14 @@ static void unix_accept_incoming_migration(void *opaque)
     do {
         c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen);
     } while (c == -1 && errno == EINTR);
+    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
+    close(s);
 
     DPRINTF("accepted migration\n");
 
     if (c == -1) {
         fprintf(stderr, "could not accept migration connection\n");
-        goto out2;
+        goto out;
     }
 
     f = qemu_fopen_socket(c);
@@ -106,9 +108,6 @@ static void unix_accept_incoming_migration(void *opaque)
     qemu_fclose(f);
 out:
     close(c);
-out2:
-    qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
-    close(s);
 }
 
 void unix_start_incoming_migration(const char *path, Error **errp)