From: Peter Krempa Date: Tue, 19 Jun 2018 12:21:36 +0000 (+0200) Subject: qemu: Use proper backingIndex when reporting stats for backing chain X-Git-Tag: v4.7.0-rc1~90 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ceecd3a6f5a462d41f819f0b0808a50142c1e19;p=thirdparty%2Flibvirt.git 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 Reviewed-by: Ján Tomko --- 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; } }