mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: migration: Use 'format' nodename accessors in dirty bitmap migration
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>
This commit is contained in:
parent
032edf2f11
commit
8848362196
@ -2393,7 +2393,8 @@ qemuMigrationSrcBeginPhaseBlockDirtyBitmaps(qemuMigrationCookie *mig,
|
|||||||
qemuMigrationBlockDirtyBitmapsDisk *disk;
|
qemuMigrationBlockDirtyBitmapsDisk *disk;
|
||||||
GSList *bitmaps = NULL;
|
GSList *bitmaps = NULL;
|
||||||
virDomainDiskDef *diskdef = vm->def->disks[i];
|
virDomainDiskDef *diskdef = vm->def->disks[i];
|
||||||
qemuBlockNamedNodeData *nodedata = virHashLookup(blockNamedNodeData, diskdef->src->nodeformat);
|
qemuBlockNamedNodeData *nodedata = virHashLookup(blockNamedNodeData,
|
||||||
|
qemuBlockStorageSourceGetEffectiveNodename(diskdef->src));
|
||||||
size_t j;
|
size_t j;
|
||||||
|
|
||||||
if (!nodedata)
|
if (!nodedata)
|
||||||
@ -4456,7 +4457,7 @@ qemuMigrationSrcRunPrepareBlockDirtyBitmapsMerge(virDomainObj *vm,
|
|||||||
granularity = b->granularity;
|
granularity = b->granularity;
|
||||||
|
|
||||||
if (qemuMonitorTransactionBitmapMergeSourceAddBitmap(merge,
|
if (qemuMonitorTransactionBitmapMergeSourceAddBitmap(merge,
|
||||||
n->nodeformat,
|
qemuBlockStorageSourceGetEffectiveNodename(n),
|
||||||
b->name) < 0)
|
b->name) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -4465,19 +4466,19 @@ qemuMigrationSrcRunPrepareBlockDirtyBitmapsMerge(virDomainObj *vm,
|
|||||||
bitmap->persistent = VIR_TRISTATE_BOOL_YES;
|
bitmap->persistent = VIR_TRISTATE_BOOL_YES;
|
||||||
|
|
||||||
if (qemuMonitorTransactionBitmapAdd(actions,
|
if (qemuMonitorTransactionBitmapAdd(actions,
|
||||||
disk->disk->src->nodeformat,
|
qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src),
|
||||||
bitmap->sourcebitmap,
|
bitmap->sourcebitmap,
|
||||||
false, false, granularity) < 0)
|
false, false, granularity) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (qemuMonitorTransactionBitmapMerge(actions,
|
if (qemuMonitorTransactionBitmapMerge(actions,
|
||||||
disk->disk->src->nodeformat,
|
qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src),
|
||||||
bitmap->sourcebitmap,
|
bitmap->sourcebitmap,
|
||||||
&merge) < 0)
|
&merge) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
tmpbmp = g_new0(qemuDomainJobPrivateMigrateTempBitmap, 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);
|
tmpbmp->bitmapname = g_strdup(bitmap->sourcebitmap);
|
||||||
tmpbitmaps = g_slist_prepend(tmpbitmaps, tmpbmp);
|
tmpbitmaps = g_slist_prepend(tmpbitmaps, tmpbmp);
|
||||||
}
|
}
|
||||||
|
@ -1573,7 +1573,7 @@ qemuMigrationCookieBlockDirtyBitmapsMatchDisks(virDomainDef *def,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
disk->nodename = disk->disk->src->nodeformat;
|
disk->nodename = qemuBlockStorageSourceGetEffectiveNodename(disk->disk->src);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user