mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-06 08:53:48 +00:00
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:
parent
e3dff704bf
commit
8ea33c8c18
@ -17594,9 +17594,9 @@ qemuDomainGetStatsBlock(virQEMUDriver *driver,
|
|||||||
g_autoptr(GHashTable) stats = NULL;
|
g_autoptr(GHashTable) stats = NULL;
|
||||||
qemuDomainObjPrivate *priv = dom->privateData;
|
qemuDomainObjPrivate *priv = dom->privateData;
|
||||||
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
||||||
int count_index = -1;
|
|
||||||
size_t visited = 0;
|
size_t visited = 0;
|
||||||
bool visitBacking = !!(privflags & QEMU_DOMAIN_STATS_BACKING);
|
bool visitBacking = !!(privflags & QEMU_DOMAIN_STATS_BACKING);
|
||||||
|
g_autoptr(virTypedParamList) blockparams = virTypedParamListNew();
|
||||||
|
|
||||||
if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) {
|
if (HAVE_JOB(privflags) && virDomainObjIsActive(dom)) {
|
||||||
qemuDomainObjEnterMonitor(dom);
|
qemuDomainObjEnterMonitor(dom);
|
||||||
@ -17613,21 +17613,17 @@ qemuDomainGetStatsBlock(virQEMUDriver *driver,
|
|||||||
virResetLastError();
|
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++) {
|
for (i = 0; i < dom->def->ndisks; i++) {
|
||||||
if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats,
|
if (qemuDomainGetStatsBlockExportDisk(dom->def->disks[i], stats,
|
||||||
params, &visited,
|
blockparams, &visited,
|
||||||
visitBacking, driver, cfg, dom) < 0)
|
visitBacking, driver, cfg, dom) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
params->par[count_index].value.ui = visited;
|
if (virTypedParamListAddUInt(params, visited, "block.count") < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
virTypedParamListConcat(params, &blockparams);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user