[PATCH 20/21] qemuDomainGetStatsDirtyRate: Don't error out

Peter Krempa posted 21 patches 9 months, 4 weeks ago
[PATCH 20/21] qemuDomainGetStatsDirtyRate: Don't error out
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.

If fetching of the dirty rate stats fails just skip outputing them.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_driver.c | 25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 45f286994e..9e125d8b24 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -17601,19 +17601,6 @@ qemuDomainGetStatsPerf(virQEMUDriver *driver G_GNUC_UNUSED,
     return 0;
 }

-static int
-qemuDomainGetStatsDirtyRateMon(virDomainObj *vm,
-                               qemuMonitorDirtyRateInfo *info)
-{
-    qemuDomainObjPrivate *priv = vm->privateData;
-    int ret;
-
-    qemuDomainObjEnterMonitor(vm);
-    ret = qemuMonitorQueryDirtyRate(priv->mon, info);
-    qemuDomainObjExitMonitor(vm);
-
-    return ret;
-}

 static int
 qemuDomainGetStatsDirtyRate(virQEMUDriver *driver G_GNUC_UNUSED,
@@ -17621,13 +17608,21 @@ qemuDomainGetStatsDirtyRate(virQEMUDriver *driver G_GNUC_UNUSED,
                             virTypedParamList *params,
                             unsigned int privflags)
 {
+    qemuDomainObjPrivate *priv = dom->privateData;
     qemuMonitorDirtyRateInfo info;
+    int rv;

     if (!HAVE_JOB(privflags) || !virDomainObjIsActive(dom))
         return 0;

-    if (qemuDomainGetStatsDirtyRateMon(dom, &info) < 0)
-        return -1;
+    qemuDomainObjEnterMonitor(dom);
+    rv = qemuMonitorQueryDirtyRate(priv->mon, &info);
+    qemuDomainObjExitMonitor(dom);
+
+    if (rv < 0) {
+        virResetLastError();
+        return 0;
+    }

     virTypedParamListAddInt(params, info.status, "dirtyrate.calc_status");
     virTypedParamListAddLLong(params, info.startTime, "dirtyrate.calc_start_time");
-- 
2.48.1