diff options
-rw-r--r-- | migration/migration.c | 8 | ||||
-rw-r--r-- | migration/postcopy-ram.c | 1 |
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); |