qemuDomainGetStatsBlock: Don't directly access virTypedParamList

The struct will be made private in upcoming patches. Construct the list
of block entries into a separate list and append them rather than
remember the index of the count element.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Peter Krempa 2023-04-18 15:33:24 +02:00
parent e3dff704bf
commit 8ea33c8c18

View File

@ -17594,9 +17594,9 @@ qemuDomainGetStatsBlock(virQEMUDriver *driver,
g_autoptr(GHashTable) stats = NULL;
qemuDomainObjPrivate *priv = dom->privateData;
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
int count_index = -1;
size_t visited = 0;
bool visitBacking = !!(privflags & QEMU_DOMAIN_STATS_BACKING);
g_autoptr(virTypedParamList) blockparams = virTypedParamListNew();
if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) {
qemuDomainObjEnterMonitor(dom);
@ -17613,21 +17613,17 @@ qemuDomainGetStatsBlock(virQEMUDriver *driver,
virResetLastError();
}
/* When listing backing chains, it's easier to fix up the count
* after the iteration than it is to iterate twice; but we still
* want count listed first. */
count_index = params->npar;
if (virTypedParamListAddUInt(params, 0, "block.count") < 0)
return -1;
for (i = 0; i < dom->def->ndisks; i++) {
if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats,
params, &visited,
blockparams, &visited,
visitBacking, driver, cfg, dom) < 0)
return -1;
}
params->par[count_index].value.ui = visited;
if (virTypedParamListAddUInt(params, visited, "block.count") < 0)
return -1;
virTypedParamListConcat(params, &blockparams);
return 0;
}