diff options
| author | Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> | 2025-09-16 16:13:54 +0300 |
|---|---|---|
| committer | Daniel P. Berrangé <berrange@redhat.com> | 2025-09-19 12:46:07 +0100 |
| commit | fe6a74f365743ae3ce2cbbc4d44617d51a446a02 (patch) | |
| tree | f981e006868f65f03ff167d1afe164925132242e /migration/savevm.c | |
| parent | 1ed8903916394fca2347c700da974ca3856274b2 (diff) | |
| download | focaccia-qemu-fe6a74f365743ae3ce2cbbc4d44617d51a446a02.tar.gz focaccia-qemu-fe6a74f365743ae3ce2cbbc4d44617d51a446a02.zip | |
migration: qemu_file_set_blocking(): add errp parameter
qemu_file_set_blocking() is a wrapper on qio_channel_set_blocking(), so let's passthrough the errp. Note the migration should not be using &error_abort in these calls, however, this is done to expedite the API conversion. The original code would have eventually ended up calling either qemu_socket_set_nonblock which would asset on Linux, or g_unix_set_fd_nonblocking which would propagate errors. We never saw asserts in practice, and conceptually they should not happen, but ideally this code will be later adapted to remove use of &error_abort. Acked-by: Peter Xu <peterx@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Diffstat (limited to 'migration/savevm.c')
| -rw-r--r-- | migration/savevm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index fabbeb296a..abe0547f9b 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2095,7 +2095,7 @@ static void *postcopy_ram_listen_thread(void *opaque) * Because we're a thread and not a coroutine we can't yield * in qemu_file, and thus we must be blocking now. */ - qemu_file_set_blocking(f, true); + qemu_file_set_blocking(f, true, &error_fatal); /* TODO: sanity check that only postcopiable data will be loaded here */ load_res = qemu_loadvm_state_main(f, mis); @@ -2108,7 +2108,7 @@ static void *postcopy_ram_listen_thread(void *opaque) f = mis->from_src_file; /* And non-blocking again so we don't block in any cleanup */ - qemu_file_set_blocking(f, false); + qemu_file_set_blocking(f, false, &error_fatal); trace_postcopy_ram_listen_thread_exit(); if (load_res < 0) { |