From 4ceecd3a6f5a462d41f819f0b0808a50142c1e19 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 19 Jun 2018 14:21:36 +0200 Subject: [PATCH] qemu: Use proper backingIndex when reporting stats for backing chain MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Ján Tomko --- src/qemu/qemu_driver.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 5936a9fa3c..f5169479cf 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -20031,7 +20031,6 @@ qemuDomainGetStatsOneBlock(virQEMUDriverPtr driver, virDomainDiskDefPtr disk, virStorageSourcePtr src, size_t block_idx, - unsigned int backing_idx, virHashTablePtr stats, virHashTablePtr nodedata) { @@ -20040,16 +20039,16 @@ qemuDomainGetStatsOneBlock(virQEMUDriverPtr driver, char *alias = NULL; 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, disk->dst); if (virStorageSourceIsLocalStorage(src) && src->path) QEMU_ADD_NAME_PARAM(record, maxparams, "block", "path", block_idx, src->path); - if (backing_idx) + if (src->id) 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 * ourselves */ @@ -20166,16 +20165,14 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, for (i = 0; i < dom->def->ndisks; i++) { virDomainDiskDefPtr disk = dom->def->disks[i]; virStorageSourcePtr src = disk->src; - unsigned int backing_idx = 0; while (virStorageSourceIsBacking(src) && - (backing_idx == 0 || visitBacking)) { + (src == disk->src || visitBacking)) { if (qemuDomainGetStatsOneBlock(driver, cfg, dom, record, maxparams, - disk, src, visited, backing_idx, + disk, src, visited, stats, nodestats) < 0) goto cleanup; visited++; - backing_idx++; src = src->backingStore; } }