The bulk domain stats API is meant to collect as much data as possible
without erroring out. Ignore errors from 'qemuDomainGetIOThreadsMon()'
and skip the data if an error happens.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_driver.c | 21 ++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8d413fc4df..e513223de2 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -17531,22 +17531,21 @@ qemuDomainGetStatsIOThread(virQEMUDriver *driver G_GNUC_UNUSED,
unsigned int privflags)
{
size_t i;
- qemuMonitorIOThreadInfo **iothreads = NULL;
+ g_autofree qemuMonitorIOThreadInfo **iothreads = NULL;
int niothreads = 0;
- int ret = -1;
if (!HAVE_JOB(privflags) || !virDomainObjIsActive(dom))
return 0;
- if (qemuDomainGetIOThreadsMon(dom, &iothreads, &niothreads) < 0)
- return -1;
+ if (qemuDomainGetIOThreadsMon(dom, &iothreads, &niothreads) < 0) {
+ virResetLastError();
+ return 0;
+ }
/* qemuDomainGetIOThreadsMon returns a NULL-terminated list, so we must free
* it even if it returns 0 */
- if (niothreads == 0) {
- ret = 0;
- goto cleanup;
- }
+ if (niothreads == 0)
+ return 0;
virTypedParamListAddUInt(params, niothreads, "iothread.count");
@@ -17564,14 +17563,10 @@ qemuDomainGetStatsIOThread(virQEMUDriver *driver G_GNUC_UNUSED,
}
}
- ret = 0;
-
- cleanup:
for (i = 0; i < niothreads; i++)
VIR_FREE(iothreads[i]);
- VIR_FREE(iothreads);
- return ret;
+ return 0;
}
--
2.48.1