From 8848362196943008cc5d12fe7468f51e0f992a8e Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 16 Oct 2023 16:44:20 +0200 Subject: [PATCH] qemu: migration: Use 'format' nodename accessors in dirty bitmap migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The persistent bitmaps are stored in the format layer, using 'effective' bitmap name is the most reasonable approach in this case. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_migration.c | 11 ++++++----- src/qemu/qemu_migration_cookie.c | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 949ef6d6d5..76da981d08 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2393,7 +2393,8 @@ qemuMigrationSrcBeginPhaseBlockDirtyBitmaps(qemuMigrationCookie *mig, qemuMigrationBlockDirtyBitmapsDisk *disk; GSList *bitmaps = NULL; virDomainDiskDef *diskdef = vm->def->disks[i]; - qemuBlockNamedNodeData *nodedata = virHashLookup(blockNamedNodeData, diskdef->src->nodeformat); + qemuBlockNamedNodeData *nodedata = virHashLookup(blockNamedNodeData, + qemuBlockStorageSourceGetEffectiveNodename(diskdef->src)); size_t j; if (!nodedata) @@ -4456,7 +4457,7 @@ qemuMigrationSrcRunPrepareBlockDirtyBitmapsMerge(virDomainObj *vm, granularity = b->granularity; if (qemuMonitorTransactionBitmapMergeSourceAddBitmap(merge, - n->nodeformat, + qemuBlockStorageSourceGetEffectiveNodename(n), b->name) < 0) return -1; } @@ -4465,19 +4466,19 @@ qemuMigrationSrcRunPrepareBlockDirtyBitmapsMerge(virDomainObj *vm, bitmap->persistent = VIR_TRISTATE_BOOL_YES; if (qemuMonitorTransactionBitmapAdd(actions, - disk->disk->src->nodeformat, + qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src), bitmap->sourcebitmap, false, false, granularity) < 0) return -1; if (qemuMonitorTransactionBitmapMerge(actions, - disk->disk->src->nodeformat, + qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src), bitmap->sourcebitmap, &merge) < 0) return -1; tmpbmp = g_new0(qemuDomainJobPrivateMigrateTempBitmap, 1); - tmpbmp->nodename = g_strdup(disk->disk->src->nodeformat); + tmpbmp->nodename = g_strdup(qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src)); tmpbmp->bitmapname = g_strdup(bitmap->sourcebitmap); tmpbitmaps = g_slist_prepend(tmpbitmaps, tmpbmp); } diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index ba146960d5..5505fdaf22 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1573,7 +1573,7 @@ qemuMigrationCookieBlockDirtyBitmapsMatchDisks(virDomainDef *def, return -1; } - disk->nodename = disk->disk->src->nodeformat; + disk->nodename = qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src); } return 0;