diff options
author | Peter Xu <peterx@redhat.com> | 2017-05-19 14:43:30 +0800 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2017-06-01 18:49:12 +0200 |
commit | 660819b1df9f79cb8d3bb99c590476f131858e75 (patch) | |
tree | 189665725d628290f4042bb69876ecab2a72d016 | |
parent | 3482655bbc21d158ed0daaa294c890997238cc23 (diff) | |
download | qemu-660819b1df9f79cb8d3bb99c590476f131858e75.zip qemu-660819b1df9f79cb8d3bb99c590476f131858e75.tar.gz qemu-660819b1df9f79cb8d3bb99c590476f131858e75.tar.bz2 |
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>
-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 b90e399..5d9ccf1 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 3f9ae1b..5ceb623 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); |