migration: push Error **errp into loadvm_postcopy_handle_switchover_start()

This is an incremental step in converting vmstate loading code to report
error via Error objects instead of directly printing it to console/monitor.
It is ensured that loadvm_postcopy_handle_switchover_start() must report
an error in errp, in case of failure.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Arun Menon <armenon@redhat.com>
Tested-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Link: https://lore.kernel.org/r/20250918-propagate_tpm_error-v14-22-36f11a6fb9d3@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
Arun Menon 2025-09-18 20:53:39 +05:30 committed by Peter Xu
parent d865e4aabd
commit aa77746602

View file

@ -2534,7 +2534,7 @@ static int loadvm_process_enable_colo(MigrationIncomingState *mis,
return ret;
}
static int loadvm_postcopy_handle_switchover_start(void)
static int loadvm_postcopy_handle_switchover_start(Error **errp)
{
SaveStateEntry *se;
@ -2547,6 +2547,7 @@ static int loadvm_postcopy_handle_switchover_start(void)
ret = se->ops->switchover_start(se->opaque);
if (ret < 0) {
error_setg(errp, "Switchover start failed: %d", ret);
return ret;
}
}
@ -2655,11 +2656,7 @@ static int loadvm_process_command(QEMUFile *f, Error **errp)
return loadvm_process_enable_colo(mis, errp);
case MIG_CMD_SWITCHOVER_START:
ret = loadvm_postcopy_handle_switchover_start();
if (ret < 0) {
error_setg(errp, "Failed to load device state command: %d", ret);
}
return ret;
return loadvm_postcopy_handle_switchover_start(errp);
}
return 0;