mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: Use proper backingIndex when reporting stats for backing chain
Use the index stored in virStorageSource struct rather than recalculating it. Currently we'd report proper numbers but that will change with blockdev. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
9a28d3fd92
commit
4ceecd3a6f
@ -20031,7 +20031,6 @@ qemuDomainGetStatsOneBlock(virQEMUDriverPtr driver,
|
|||||||
virDomainDiskDefPtr disk,
|
virDomainDiskDefPtr disk,
|
||||||
virStorageSourcePtr src,
|
virStorageSourcePtr src,
|
||||||
size_t block_idx,
|
size_t block_idx,
|
||||||
unsigned int backing_idx,
|
|
||||||
virHashTablePtr stats,
|
virHashTablePtr stats,
|
||||||
virHashTablePtr nodedata)
|
virHashTablePtr nodedata)
|
||||||
{
|
{
|
||||||
@ -20040,16 +20039,16 @@ qemuDomainGetStatsOneBlock(virQEMUDriverPtr driver,
|
|||||||
char *alias = NULL;
|
char *alias = NULL;
|
||||||
|
|
||||||
if (disk->info.alias)
|
if (disk->info.alias)
|
||||||
alias = qemuDomainStorageAlias(disk->info.alias, backing_idx);
|
alias = qemuDomainStorageAlias(disk->info.alias, src->id);
|
||||||
|
|
||||||
QEMU_ADD_NAME_PARAM(record, maxparams, "block", "name", block_idx,
|
QEMU_ADD_NAME_PARAM(record, maxparams, "block", "name", block_idx,
|
||||||
disk->dst);
|
disk->dst);
|
||||||
if (virStorageSourceIsLocalStorage(src) && src->path)
|
if (virStorageSourceIsLocalStorage(src) && src->path)
|
||||||
QEMU_ADD_NAME_PARAM(record, maxparams, "block", "path",
|
QEMU_ADD_NAME_PARAM(record, maxparams, "block", "path",
|
||||||
block_idx, src->path);
|
block_idx, src->path);
|
||||||
if (backing_idx)
|
if (src->id)
|
||||||
QEMU_ADD_BLOCK_PARAM_UI(record, maxparams, block_idx, "backingIndex",
|
QEMU_ADD_BLOCK_PARAM_UI(record, maxparams, block_idx, "backingIndex",
|
||||||
backing_idx);
|
src->id);
|
||||||
|
|
||||||
/* the VM is offline so we have to go and load the stast from the disk by
|
/* the VM is offline so we have to go and load the stast from the disk by
|
||||||
* ourselves */
|
* ourselves */
|
||||||
@ -20166,16 +20165,14 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver,
|
|||||||
for (i = 0; i < dom->def->ndisks; i++) {
|
for (i = 0; i < dom->def->ndisks; i++) {
|
||||||
virDomainDiskDefPtr disk = dom->def->disks[i];
|
virDomainDiskDefPtr disk = dom->def->disks[i];
|
||||||
virStorageSourcePtr src = disk->src;
|
virStorageSourcePtr src = disk->src;
|
||||||
unsigned int backing_idx = 0;
|
|
||||||
|
|
||||||
while (virStorageSourceIsBacking(src) &&
|
while (virStorageSourceIsBacking(src) &&
|
||||||
(backing_idx == 0 || visitBacking)) {
|
(src == disk->src || visitBacking)) {
|
||||||
if (qemuDomainGetStatsOneBlock(driver, cfg, dom, record, maxparams,
|
if (qemuDomainGetStatsOneBlock(driver, cfg, dom, record, maxparams,
|
||||||
disk, src, visited, backing_idx,
|
disk, src, visited,
|
||||||
stats, nodestats) < 0)
|
stats, nodestats) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
visited++;
|
visited++;
|
||||||
backing_idx++;
|
|
||||||
src = src->backingStore;
|
src = src->backingStore;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user