qemu: Refactor control flow in qemuDomainGetStatsBlockExportDisk

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2018-08-03 14:13:43 +02:00
parent 8bb3924f05
commit e004f1c609

View File

@ -20191,20 +20191,18 @@ qemuDomainGetStatsBlockExportDisk(virDomainDiskDefPtr disk,
{ {
char *alias = NULL; char *alias = NULL;
virStorageSourcePtr src = disk->src; virStorageSourcePtr n;
int ret = -1; int ret = -1;
while (virStorageSourceIsBacking(src) && for (n = disk->src; virStorageSourceIsBacking(n); n = n->backingStore) {
(src == disk->src || visitBacking)) {
/* alias may be NULL if the VM is not running */ /* alias may be NULL if the VM is not running */
if (disk->info.alias && if (disk->info.alias &&
!(alias = qemuDomainStorageAlias(disk->info.alias, src->id))) !(alias = qemuDomainStorageAlias(disk->info.alias, n->id)))
goto cleanup; goto cleanup;
qemuDomainGetStatsOneBlockRefreshNamed(src, alias, stats, nodestats); qemuDomainGetStatsOneBlockRefreshNamed(n, alias, stats, nodestats);
if (qemuDomainGetStatsBlockExportHeader(disk, src, *recordnr, if (qemuDomainGetStatsBlockExportHeader(disk, n, *recordnr,
records, nrecords) < 0) records, nrecords) < 0)
goto cleanup; goto cleanup;
@ -20213,13 +20211,15 @@ qemuDomainGetStatsBlockExportDisk(virDomainDiskDefPtr disk,
goto cleanup; goto cleanup;
if (qemuDomainGetStatsOneBlock(driver, cfg, dom, records, nrecords, if (qemuDomainGetStatsOneBlock(driver, cfg, dom, records, nrecords,
alias, src, *recordnr, alias, n, *recordnr,
stats) < 0) stats) < 0)
goto cleanup; goto cleanup;
VIR_FREE(alias); VIR_FREE(alias);
(*recordnr)++; (*recordnr)++;
src = src->backingStore;
if (!visitBacking)
break;
} }
ret = 0; ret = 0;