aboutsummaryrefslogtreecommitdiff
path: root/migration
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2017-05-19 14:43:30 +0800
committerJuan Quintela <quintela@redhat.com>2017-06-01 18:49:12 +0200
commit660819b1df9f79cb8d3bb99c590476f131858e75 (patch)
tree189665725d628290f4042bb69876ecab2a72d016 /migration
parent3482655bbc21d158ed0daaa294c890997238cc23 (diff)
migration: shut src return path unconditionally
We were do the shutting off only for postcopy. Now we do this as long as the source return path is there. Moving the cleanup of from_src_file there too. Signed-off-by: Peter Xu <peterx@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r--migration/migration.c8
-rw-r--r--migration/postcopy-ram.c1
2 files changed, 7 insertions, 2 deletions
diff --git a/migration/migration.c b/migration/migration.c
index b90e39992e..5d9ccf1988 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -134,10 +134,17 @@ void migration_incoming_state_destroy(void)
struct MigrationIncomingState *mis = migration_incoming_get_current();
if (mis->to_src_file) {
+ /* Tell source that we are done */
+ migrate_send_rp_shut(mis, qemu_file_get_error(mis->from_src_file) != 0);
qemu_fclose(mis->to_src_file);
mis->to_src_file = NULL;
}
+ if (mis->from_src_file) {
+ qemu_fclose(mis->from_src_file);
+ mis->from_src_file = NULL;
+ }
+
qemu_event_destroy(&mis->main_thread_load_event);
}
@@ -435,7 +442,6 @@ static void process_incoming_migration_co(void *opaque)
exit(EXIT_FAILURE);
}
- qemu_fclose(f);
free_xbzrle_decoded_buf();
mis->bh = qemu_bh_new(process_incoming_migration_bh, mis);
diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c
index 3f9ae1bff2..5ceb62374b 100644
--- a/migration/postcopy-ram.c
+++ b/migration/postcopy-ram.c
@@ -333,7 +333,6 @@ int postcopy_ram_incoming_cleanup(MigrationIncomingState *mis)
}
postcopy_state_set(POSTCOPY_INCOMING_END);
- migrate_send_rp_shut(mis, qemu_file_get_error(mis->from_src_file) != 0);
if (mis->postcopy_tmp_page) {
munmap(mis->postcopy_tmp_page, mis->largest_page_size);