From: "Daniel P. Berrange" <berra...@redhat.com>

Make the Xen domain stats / peek and node memory driver
methods unconditionally call the sub-drivers which are
guaranteed to be open.

Signed-off-by: Daniel P. Berrange <berra...@redhat.com>
---
 src/xen/xen_driver.c    | 59 +++++++++----------------------------------------
 src/xen/xend_internal.c |  3 ---
 2 files changed, 11 insertions(+), 51 deletions(-)

diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index 1941dbe..d6817eb 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -1566,26 +1566,14 @@ static int
 xenUnifiedDomainBlockStats(virDomainPtr dom, const char *path,
                            struct _virDomainBlockStats *stats)
 {
-    xenUnifiedPrivatePtr priv = dom->conn->privateData;
-
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
-        return xenHypervisorDomainBlockStats(dom, path, stats);
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    return xenHypervisorDomainBlockStats(dom, path, stats);
 }
 
 static int
 xenUnifiedDomainInterfaceStats(virDomainPtr dom, const char *path,
                                struct _virDomainInterfaceStats *stats)
 {
-    xenUnifiedPrivatePtr priv = dom->conn->privateData;
-
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
-        return xenHypervisorDomainInterfaceStats(dom, path, stats);
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    return xenHypervisorDomainInterfaceStats(dom, path, stats);
 }
 
 static int
@@ -1593,57 +1581,32 @@ xenUnifiedDomainBlockPeek(virDomainPtr dom, const char 
*path,
                           unsigned long long offset, size_t size,
                           void *buffer, unsigned int flags)
 {
-    int r;
     xenUnifiedPrivatePtr priv = dom->conn->privateData;
 
     virCheckFlags(0, -1);
 
-    if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) {
-        r = xenDaemonDomainBlockPeek(dom, path, offset, size, buffer);
-        if (r != -2) return r;
-        /* r == -2 means declined, so fall through to XM driver ... */
-    }
-
-    if (priv->opened[XEN_UNIFIED_XM_OFFSET]) {
-        if (xenXMDomainBlockPeek(dom, path, offset, size, buffer) == 0)
-            return 0;
-    }
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    if (dom->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
+        return xenXMDomainBlockPeek(dom, path, offset, size, buffer);
+    else
+        return xenDaemonDomainBlockPeek(dom, path, offset, size, buffer);
 }
 
 static int
 xenUnifiedNodeGetCellsFreeMemory(virConnectPtr conn, unsigned long long 
*freeMems,
                                  int startCell, int maxCells)
 {
-    xenUnifiedPrivatePtr priv = conn->privateData;
-
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
-        return xenHypervisorNodeGetCellsFreeMemory(conn, freeMems,
-                                                   startCell, maxCells);
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return -1;
+    return xenHypervisorNodeGetCellsFreeMemory(conn, freeMems,
+                                               startCell, maxCells);
 }
 
 static unsigned long long
 xenUnifiedNodeGetFreeMemory(virConnectPtr conn)
 {
     unsigned long long freeMem = 0;
-    int ret;
-    xenUnifiedPrivatePtr priv = conn->privateData;
 
-    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET]) {
-        ret = xenHypervisorNodeGetCellsFreeMemory(conn, &freeMem,
-                                                  -1, 1);
-        if (ret != 1)
-            return 0;
-        return freeMem;
-    }
-
-    virReportError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
-    return 0;
+    if (xenHypervisorNodeGetCellsFreeMemory(conn, &freeMem, -1, 1) < 0)
+        return 0;
+    return freeMem;
 }
 
 
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index ad69b47..ba4a018 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -3249,9 +3249,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain,
     int vncport;
     const char *actual;
 
-    if (domain->id < 0 && priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
-        return -2;              /* Decline, allow XM to handle it. */
-
     /* Security check: The path must correspond to a block device. */
     if (domain->id > 0)
         root = sexpr_get(domain->conn, "/xend/domain/%d?detail=1",
-- 
1.8.1.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to