]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: migration: Use 'format' nodename accessors in dirty bitmap migration
authorPeter Krempa <pkrempa@redhat.com>
Mon, 16 Oct 2023 14:44:20 +0000 (16:44 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 17 Oct 2023 12:16:17 +0000 (14:16 +0200)
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 <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_migration.c
src/qemu/qemu_migration_cookie.c

index 949ef6d6d5dcfdb33d129dd73d935e086bc126b1..76da981d083b7619502f6c1b9d60e5a3ba46f414 100644 (file)
@@ -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);
         }
index ba146960d59bbbf5fd46ce7a75ab9593457f7a43..5505fdaf2280317b722532f09c7a8ce40cc27a7e 100644 (file)
@@ -1573,7 +1573,7 @@ qemuMigrationCookieBlockDirtyBitmapsMatchDisks(virDomainDef *def,
             return -1;
         }
 
-        disk->nodename = disk->disk->src->nodeformat;
+        disk->nodename = qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src);
     }
 
     return 0;