aboutsummaryrefslogtreecommitdiff
path: root/migration/migration.c
diff options
context:
space:
mode:
Diffstat (limited to 'migration/migration.c')
-rw-r--r--migration/migration.c34
1 files changed, 10 insertions, 24 deletions
diff --git a/migration/migration.c b/migration/migration.c
index 041b845..bb90978 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -188,8 +188,6 @@ static gint page_request_addr_cmp(gconstpointer ap, gconstpointer bp)
void migration_object_init(void)
{
- Error *err = NULL;
-
/* This can only be called once. */
assert(!current_migration);
current_migration = MIGRATION_OBJ(object_new(TYPE_MIGRATION));
@@ -210,10 +208,7 @@ void migration_object_init(void)
qemu_mutex_init(&current_incoming->page_request_mutex);
current_incoming->page_requested = g_tree_new(page_request_addr_cmp);
- if (!migration_object_check(current_migration, &err)) {
- error_report_err(err);
- exit(1);
- }
+ migration_object_check(current_migration, &error_fatal);
blk_mig_init();
ram_mig_init();
@@ -616,30 +611,25 @@ fail:
}
/**
- * @migration_incoming_setup: Setup incoming migration
- *
- * Returns 0 for no error or 1 for error
- *
+ * migration_incoming_setup: Setup incoming migration
* @f: file for main migration channel
* @errp: where to put errors
+ *
+ * Returns: %true on success, %false on error.
*/
-static int migration_incoming_setup(QEMUFile *f, Error **errp)
+static bool migration_incoming_setup(QEMUFile *f, Error **errp)
{
MigrationIncomingState *mis = migration_incoming_get_current();
- Error *local_err = NULL;
- if (multifd_load_setup(&local_err) != 0) {
- /* We haven't been able to create multifd threads
- nothing better to do */
- error_report_err(local_err);
- exit(EXIT_FAILURE);
+ if (multifd_load_setup(errp) != 0) {
+ return false;
}
if (!mis->from_src_file) {
mis->from_src_file = f;
}
qemu_file_set_blocking(f, false);
- return 0;
+ return true;
}
void migration_incoming_process(void)
@@ -682,14 +672,11 @@ static bool postcopy_try_recover(QEMUFile *f)
void migration_fd_process_incoming(QEMUFile *f, Error **errp)
{
- Error *local_err = NULL;
-
if (postcopy_try_recover(f)) {
return;
}
- if (migration_incoming_setup(f, &local_err)) {
- error_propagate(errp, local_err);
+ if (!migration_incoming_setup(f, errp)) {
return;
}
migration_incoming_process();
@@ -710,8 +697,7 @@ void migration_ioc_process_incoming(QIOChannel *ioc, Error **errp)
return;
}
- if (migration_incoming_setup(f, &local_err)) {
- error_propagate(errp, local_err);
+ if (!migration_incoming_setup(f, errp)) {
return;
}