diff options
| author | Fabiano Rosas <farosas@suse.de> | 2024-02-06 18:51:15 -0300 |
|---|---|---|
| committer | Peter Xu <peterx@redhat.com> | 2024-02-07 09:53:18 +0800 |
| commit | bd8b0a8f82d8fc17aa285ab963ba75675c2fbe7a (patch) | |
| tree | a7c81e070aec705264198bdee1468784fe0342c5 /migration/multifd.c | |
| parent | a2a63c4abd52f4e3ff4046dcb67fe44ebf0bb8de (diff) | |
| download | focaccia-qemu-bd8b0a8f82d8fc17aa285ab963ba75675c2fbe7a.tar.gz focaccia-qemu-bd8b0a8f82d8fc17aa285ab963ba75675c2fbe7a.zip | |
migration/multifd: Move multifd_send_setup error handling in to the function
Hide the error handling inside multifd_send_setup to make it cleaner for the next patch to move the function around. Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240206215118.6171-4-farosas@suse.de Signed-off-by: Peter Xu <peterx@redhat.com>
Diffstat (limited to 'migration/multifd.c')
| -rw-r--r-- | migration/multifd.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/migration/multifd.c b/migration/multifd.c index e6ac1ad6dc..cf865edba0 100644 --- a/migration/multifd.c +++ b/migration/multifd.c @@ -985,14 +985,16 @@ static void multifd_new_send_channel_create(gpointer opaque) socket_send_channel_create(multifd_new_send_channel_async, opaque); } -int multifd_send_setup(Error **errp) +bool multifd_send_setup(void) { - int thread_count; + MigrationState *s = migrate_get_current(); + Error *local_err = NULL; + int thread_count, ret = 0; uint32_t page_count = MULTIFD_PACKET_SIZE / qemu_target_page_size(); uint8_t i; if (!migrate_multifd()) { - return 0; + return true; } thread_count = migrate_multifd_channels(); @@ -1026,14 +1028,22 @@ int multifd_send_setup(Error **errp) for (i = 0; i < thread_count; i++) { MultiFDSendParams *p = &multifd_send_state->params[i]; - int ret; - ret = multifd_send_state->ops->send_setup(p, errp); + ret = multifd_send_state->ops->send_setup(p, &local_err); if (ret) { - return ret; + break; } } - return 0; + + if (ret) { + migrate_set_error(s, local_err); + error_report_err(local_err); + migrate_set_state(&s->state, MIGRATION_STATUS_SETUP, + MIGRATION_STATUS_FAILED); + return false; + } + + return true; } struct { |