diff options
author | Juan Quintela <quintela@redhat.com> | 2023-05-03 20:10:36 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-05-05 01:04:32 +0200 |
commit | 3cba22c9ade988db239b03e5b77ffdfb16f353cf (patch) | |
tree | ddd9e00eb2c14771e29160c7737f9a70f3b68669 /migration/block-dirty-bitmap.c | |
parent | f6b761bdbd8ba63cee7428d52fb6b46e4224ddab (diff) |
migration: Fix block_bitmap_mapping migration
It is valid that params->has_block_bitmap_mapping is true and
params->block_bitmap_mapping is NULL. So we can't use the trick of
having a single function.
Move to two functions one for each value and the tests are fixed.
Fixes: b804b35b1c8a0edfd127ac20819c234be55ac7fc
migration: Create migrate_block_bitmap_mapping() function
Reported-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Message-Id: <20230503181036.14890-1-quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/block-dirty-bitmap.c')
-rw-r--r-- | migration/block-dirty-bitmap.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c index 6624f39bc6..20f36e6bd8 100644 --- a/migration/block-dirty-bitmap.c +++ b/migration/block-dirty-bitmap.c @@ -606,11 +606,9 @@ static int init_dirty_bitmap_migration(DBMSaveState *s) GHashTable *handled_by_blk = g_hash_table_new(NULL, NULL); BlockBackend *blk; GHashTable *alias_map = NULL; - const BitmapMigrationNodeAliasList *block_bitmap_mapping = - migrate_block_bitmap_mapping(); - if (block_bitmap_mapping) { - alias_map = construct_alias_map(block_bitmap_mapping, true, + if (migrate_has_block_bitmap_mapping()) { + alias_map = construct_alias_map(migrate_block_bitmap_mapping(), true, &error_abort); } @@ -1159,8 +1157,6 @@ static int dirty_bitmap_load_header(QEMUFile *f, DBMLoadState *s, static int dirty_bitmap_load(QEMUFile *f, void *opaque, int version_id) { GHashTable *alias_map = NULL; - const BitmapMigrationNodeAliasList *block_bitmap_mapping = - migrate_block_bitmap_mapping(); DBMLoadState *s = &((DBMState *)opaque)->load; int ret = 0; @@ -1172,9 +1168,9 @@ static int dirty_bitmap_load(QEMUFile *f, void *opaque, int version_id) return -EINVAL; } - if (block_bitmap_mapping) { - alias_map = construct_alias_map(block_bitmap_mapping, - false, &error_abort); + if (migrate_has_block_bitmap_mapping()) { + alias_map = construct_alias_map(migrate_block_bitmap_mapping(), false, + &error_abort); } do { |