Commit d399f67704ddc29704e397b3e4f866a7c1052a3d
Committed by
Anthony Liguori
1 parent
86635821
fix migration to obey -S
Since migration returns right away, starting the VM right after calling qemu_start_incoming_migration is wrong even if -S is not passed. We have to do this after migration has completed. Cc: Glauber Costa <glommer@redhat.com> Cc: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
4 changed files
with
7 additions
and
2 deletions
migration-exec.c
@@ -118,6 +118,8 @@ static void exec_accept_incoming_migration(void *opaque) | @@ -118,6 +118,8 @@ static void exec_accept_incoming_migration(void *opaque) | ||
118 | dprintf("successfully loaded vm state\n"); | 118 | dprintf("successfully loaded vm state\n"); |
119 | /* we've successfully migrated, close the fd */ | 119 | /* we've successfully migrated, close the fd */ |
120 | qemu_set_fd_handler2(qemu_popen_fd(f), NULL, NULL, NULL, NULL); | 120 | qemu_set_fd_handler2(qemu_popen_fd(f), NULL, NULL, NULL, NULL); |
121 | + if (autostart) | ||
122 | + vm_start(); | ||
121 | 123 | ||
122 | err: | 124 | err: |
123 | qemu_fclose(f); | 125 | qemu_fclose(f); |
migration-tcp.c
@@ -166,6 +166,8 @@ static void tcp_accept_incoming_migration(void *opaque) | @@ -166,6 +166,8 @@ static void tcp_accept_incoming_migration(void *opaque) | ||
166 | /* we've successfully migrated, close the server socket */ | 166 | /* we've successfully migrated, close the server socket */ |
167 | qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL); | 167 | qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL); |
168 | close(s); | 168 | close(s); |
169 | + if (autostart) | ||
170 | + vm_start(); | ||
169 | 171 | ||
170 | out_fopen: | 172 | out_fopen: |
171 | qemu_fclose(f); | 173 | qemu_fclose(f); |
sysemu.h
@@ -104,6 +104,7 @@ typedef enum DisplayType | @@ -104,6 +104,7 @@ typedef enum DisplayType | ||
104 | DT_NOGRAPHIC, | 104 | DT_NOGRAPHIC, |
105 | } DisplayType; | 105 | } DisplayType; |
106 | 106 | ||
107 | +extern int autostart; | ||
107 | extern int bios_size; | 108 | extern int bios_size; |
108 | extern int cirrus_vga_enabled; | 109 | extern int cirrus_vga_enabled; |
109 | extern int std_vga_enabled; | 110 | extern int std_vga_enabled; |
vl.c
@@ -187,7 +187,7 @@ ram_addr_t ram_size; | @@ -187,7 +187,7 @@ ram_addr_t ram_size; | ||
187 | int nb_nics; | 187 | int nb_nics; |
188 | NICInfo nd_table[MAX_NICS]; | 188 | NICInfo nd_table[MAX_NICS]; |
189 | int vm_running; | 189 | int vm_running; |
190 | -static int autostart; | 190 | +int autostart; |
191 | static int rtc_utc = 1; | 191 | static int rtc_utc = 1; |
192 | static int rtc_date_offset = -1; /* -1 means no change */ | 192 | static int rtc_date_offset = -1; /* -1 means no change */ |
193 | int cirrus_vga_enabled = 1; | 193 | int cirrus_vga_enabled = 1; |
@@ -6091,7 +6091,7 @@ int main(int argc, char **argv, char **envp) | @@ -6091,7 +6091,7 @@ int main(int argc, char **argv, char **envp) | ||
6091 | qemu_start_incoming_migration(incoming); | 6091 | qemu_start_incoming_migration(incoming); |
6092 | } | 6092 | } |
6093 | 6093 | ||
6094 | - if (autostart) | 6094 | + else if (autostart) |
6095 | vm_start(); | 6095 | vm_start(); |
6096 | 6096 | ||
6097 | #ifndef _WIN32 | 6097 | #ifndef _WIN32 |