[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 17/33] migration: push Error **errp into loadvm_process_enable_co
From: |
Daniel P . Berrangé |
Subject: |
[PATCH 17/33] migration: push Error **errp into loadvm_process_enable_colo() |
Date: |
Thu, 4 Feb 2021 17:18:51 +0000 |
This is an incremental step in converting vmstate loading code to report
via Error objects instead of printing directly to the console/monitor.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
include/migration/colo.h | 2 +-
migration/migration.c | 6 +++---
migration/savevm.c | 25 +++++++++++--------------
3 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/include/migration/colo.h b/include/migration/colo.h
index 768e1f04c3..1d38191360 100644
--- a/include/migration/colo.h
+++ b/include/migration/colo.h
@@ -25,7 +25,7 @@ void migrate_start_colo_process(MigrationState *s);
bool migration_in_colo_state(void);
/* loadvm */
-int migration_incoming_enable_colo(void);
+int migration_incoming_enable_colo(Error **errp);
void migration_incoming_disable_colo(void);
bool migration_incoming_colo_enabled(void);
void *colo_process_incoming_thread(void *opaque);
diff --git a/migration/migration.c b/migration/migration.c
index 287a18d269..b9cf56e61f 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -397,11 +397,11 @@ void migration_incoming_disable_colo(void)
migration_colo_enabled = false;
}
-int migration_incoming_enable_colo(void)
+int migration_incoming_enable_colo(Error **errp)
{
if (ram_block_discard_disable(true)) {
- error_report("COLO: cannot disable RAM discard");
- return -EBUSY;
+ error_setg(errp, "COLO: cannot disable RAM discard");
+ return -1;
}
migration_colo_enabled = true;
return 0;
diff --git a/migration/savevm.c b/migration/savevm.c
index b41c812188..c59e76b478 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2212,15 +2212,18 @@ static int
loadvm_handle_recv_bitmap(MigrationIncomingState *mis,
return 0;
}
-static int loadvm_process_enable_colo(MigrationIncomingState *mis)
+static int loadvm_process_enable_colo(MigrationIncomingState *mis,
+ Error **errp)
{
- int ret = migration_incoming_enable_colo();
+ int ret;
+ if (migration_incoming_enable_colo(errp) < 0) {
+ return -1;
+ }
- if (!ret) {
- ret = colo_init_ram_cache();
- if (ret) {
- migration_incoming_disable_colo();
- }
+ ret = colo_init_ram_cache();
+ if (ret < 0) {
+ error_setg(errp, "failed to init colo RAM cache: %d", ret);
+ migration_incoming_disable_colo();
}
return ret;
}
@@ -2237,7 +2240,6 @@ static int loadvm_process_command(QEMUFile *f, Error
**errp)
uint16_t cmd;
uint16_t len;
uint32_t tmp32;
- int ret;
cmd = qemu_get_be16(f);
len = qemu_get_be16(f);
@@ -2310,12 +2312,7 @@ static int loadvm_process_command(QEMUFile *f, Error
**errp)
return loadvm_handle_recv_bitmap(mis, len, errp);
case MIG_CMD_ENABLE_COLO:
- ret = loadvm_process_enable_colo(mis);
- if (ret < 0) {
- error_setg(errp, "Failed to load device state command: %d", ret);
- return -1;
- }
- return ret;
+ return loadvm_process_enable_colo(mis, errp);
}
return 0;
--
2.29.2
- Re: [PATCH 10/33] migration: push Error **errp into loadvm_postcopy_handle_advise(), (continued)
- [PATCH 11/33] migration: push Error **errp into ram_postcopy_incoming_init(), Daniel P . Berrangé, 2021/02/04
- [PATCH 13/33] migration: push Error **errp into loadvm_postcopy_handle_run(), Daniel P . Berrangé, 2021/02/04
- [PATCH 12/33] migration: push Error **errp into loadvm_postcopy_handle_listen(), Daniel P . Berrangé, 2021/02/04
- [PATCH 15/33] migration: make loadvm_postcopy_handle_resume() void, Daniel P . Berrangé, 2021/02/04
- [PATCH 14/33] migration: push Error **errp into loadvm_postcopy_ram_handle_discard(), Daniel P . Berrangé, 2021/02/04
- [PATCH 16/33] migration: push Error **errp into loadvm_handle_recv_bitmap(), Daniel P . Berrangé, 2021/02/04
- [PATCH 17/33] migration: push Error **errp into loadvm_process_enable_colo(),
Daniel P . Berrangé <=
- [PATCH 18/33] migration: push Error **errp into colo_init_ram_cache(), Daniel P . Berrangé, 2021/02/04
- [PATCH 23/33] migration: simplify some error reporting in save_snapshot(), Daniel P . Berrangé, 2021/02/04
- [PATCH 19/33] migration: push Error **errp into check_section_footer(), Daniel P . Berrangé, 2021/02/04
- [PATCH 21/33] migration: remove error reporting from qemu_fopen_bdrv() callers, Daniel P . Berrangé, 2021/02/04
- [PATCH 20/33] migration: push Error **errp into global_state_store(), Daniel P . Berrangé, 2021/02/04
- [PATCH 25/33] migration: push Error **errp into qemu_savevm_state_complete_precopy(), Daniel P . Berrangé, 2021/02/04
- [PATCH 22/33] migration: push Error **errp into qemu_savevm_state_iterate(), Daniel P . Berrangé, 2021/02/04
- [PATCH 28/33] migration: push Error **errp into qemu_savevm_send_packaged(), Daniel P . Berrangé, 2021/02/04
- [PATCH 31/33] migration: push Error **errp into qemu_savevm_state_resume_prepare(), Daniel P . Berrangé, 2021/02/04