[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 04/30] migration: Create migrate_cap_set()
From: |
Juan Quintela |
Subject: |
[PULL 04/30] migration: Create migrate_cap_set() |
Date: |
Mon, 24 Apr 2023 15:27:04 +0200 |
And remove the convoluted use of qmp_migrate_set_capabilities() to
enable disable MIGRATION_CAPABILITY_BLOCK.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
---
migration/migration.c | 34 ++++++++++++++++------------------
1 file changed, 16 insertions(+), 18 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index 80bc83f971..e667424513 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1912,25 +1912,24 @@ void migrate_set_state(int *state, int old_state, int
new_state)
}
}
-static MigrationCapabilityStatus *migrate_cap_add(MigrationCapability index,
- bool state)
+static bool migrate_cap_set(int cap, bool value, Error **errp)
{
- MigrationCapabilityStatus *cap;
+ MigrationState *s = migrate_get_current();
+ bool new_caps[MIGRATION_CAPABILITY__MAX];
- cap = g_new0(MigrationCapabilityStatus, 1);
- cap->capability = index;
- cap->state = state;
+ if (migration_is_running(s->state)) {
+ error_setg(errp, QERR_MIGRATION_ACTIVE);
+ return false;
+ }
- return cap;
-}
+ memcpy(new_caps, s->capabilities, sizeof(new_caps));
+ new_caps[cap] = value;
-void migrate_set_block_enabled(bool value, Error **errp)
-{
- MigrationCapabilityStatusList *cap = NULL;
-
- QAPI_LIST_PREPEND(cap, migrate_cap_add(MIGRATION_CAPABILITY_BLOCK, value));
- qmp_migrate_set_capabilities(cap, errp);
- qapi_free_MigrationCapabilityStatusList(cap);
+ if (!migrate_caps_check(s->capabilities, new_caps, errp)) {
+ return false;
+ }
+ s->capabilities[cap] = value;
+ return true;
}
static void migrate_set_block_incremental(MigrationState *s, bool value)
@@ -1942,7 +1941,7 @@ static void block_cleanup_parameters(MigrationState *s)
{
if (s->must_remove_block_options) {
/* setting to false can never fail */
- migrate_set_block_enabled(false, &error_abort);
+ migrate_cap_set(MIGRATION_CAPABILITY_BLOCK, false, &error_abort);
migrate_set_block_incremental(s, false);
s->must_remove_block_options = false;
}
@@ -2429,8 +2428,7 @@ static bool migrate_prepare(MigrationState *s, bool blk,
bool blk_inc,
"current migration capabilities");
return false;
}
- migrate_set_block_enabled(true, &local_err);
- if (local_err) {
+ if (!migrate_cap_set(MIGRATION_CAPABILITY_BLOCK, true, &local_err)) {
error_propagate(errp, local_err);
return false;
}
--
2.39.2
- [PULL 00/30] Migration 20230424 patches, Juan Quintela, 2023/04/24
- [PULL 04/30] migration: Create migrate_cap_set(),
Juan Quintela <=
- [PULL 01/30] migration: Minor control flow simplification, Juan Quintela, 2023/04/24
- [PULL 05/30] migration: Create options.c, Juan Quintela, 2023/04/24
- [PULL 09/30] migration: Move migrate_use_multifd() to options.c, Juan Quintela, 2023/04/24
- [PULL 02/30] migration: move migration_global_dump() to migration-hmp-cmds.c, Juan Quintela, 2023/04/24
- [PULL 03/30] spice: move client_migrate_info command to ui/, Juan Quintela, 2023/04/24
- [PULL 10/30] migration: Move migrate_use_zero_copy_send() to options.c, Juan Quintela, 2023/04/24
- [PULL 12/30] migration: Move migrate_use_block() to options.c, Juan Quintela, 2023/04/24
- [PULL 06/30] migration: Move migrate_colo_enabled() to options.c, Juan Quintela, 2023/04/24
- [PULL 07/30] migration: Move migrate_use_compression() to options.c, Juan Quintela, 2023/04/24
- [PULL 13/30] migration: Move migrate_use_return() to options.c, Juan Quintela, 2023/04/24