[PATCH 18/21] qemuDomainGetStatsIOThread: Don't error out if fetching iothread info fails

Peter Krempa posted 21 patches 9 months, 4 weeks ago
[PATCH 18/21] qemuDomainGetStatsIOThread: Don't error out if fetching iothread info fails
Posted by Peter Krempa 9 months, 4 weeks ago
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@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