When doing cleanup, we currently close() some of the shared migration files and shutdown() + close() others. Be consistent by always calling shutdown() before close().
Do this only for the source files for now because the source runs multiple threads which could cause races between the two calls. Having them together allows us to move them to a centralized place under the protection of a lock the next patch. Signed-off-by: Fabiano Rosas <faro...@suse.de> --- migration/migration.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/migration/migration.c b/migration/migration.c index 7fec57ad7f..4df5ca25c1 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1175,6 +1175,7 @@ static void migrate_fd_cleanup(MigrationState *s) * critical section won't block for long. */ migration_ioc_unregister_yank_from_file(tmp); + qemu_file_shutdown(tmp); qemu_fclose(tmp); } @@ -1844,6 +1845,7 @@ static void migration_release_dst_files(MigrationState *ms) ms->postcopy_qemufile_src = NULL; } + qemu_file_shutdown(file); qemu_fclose(file); } -- 2.35.3