virReportErrorHelper(conn, VIR_FROM_XENXM, code, __FILE__, \
__FUNCTION__, __LINE__, fmt)
+static int xenInotifyActive(virConnectPtr conn)
+{
+ int ret;
+#ifndef WITH_XEN_INOTIFY
+ ret = 0;
+#else
+ xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
+ ret = (priv->inotifyWatch > 0);
+#endif
+
+ return ret;
+}
+
/* Convenience method to grab a int from the config file object */
static int xenXMConfigGetBool(virConnectPtr conn,
virConfPtr conf,
priv = conn->privateData;
xenUnifiedLock(priv);
-#ifndef WITH_XEN_INOTIFY
- if (xenXMConfigCacheRefresh (conn) < 0)
+ if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh (conn) < 0)
goto cleanup;
-#endif
if (!(filename = virHashLookup(priv->nameConfigMap, domname)))
goto cleanup;
priv = conn->privateData;
xenUnifiedLock(priv);
-#ifndef WITH_XEN_INOTIFY
- if (xenXMConfigCacheRefresh (conn) < 0)
+ if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh (conn) < 0)
goto cleanup;
-#endif
if (!(entry = virHashSearch(priv->configCache, xenXMDomainSearchForUUID, (const void *)uuid)))
goto cleanup;
xenUnifiedLock(priv);
-#ifndef WITH_XEN_INOTIFY
- if (xenXMConfigCacheRefresh (conn) < 0) {
+ if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh (conn) < 0) {
xenUnifiedUnlock(priv);
return (NULL);
}
-#endif
if (!(def = virDomainDefParseString(conn, priv->caps, xml,
VIR_DOMAIN_XML_INACTIVE))) {
priv = conn->privateData;
xenUnifiedLock(priv);
-#ifndef WITH_XEN_INOTIFY
- if (xenXMConfigCacheRefresh (conn) < 0)
+ if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh (conn) < 0)
goto cleanup;
-#endif
if (maxnames > virHashSize(priv->configCache))
maxnames = virHashSize(priv->configCache);
virHashForEach(priv->nameConfigMap, xenXMListIterator, &ctx);
ret = ctx.count;
-#ifndef WITH_XEN_INOTIFY
cleanup:
-#endif
xenUnifiedUnlock(priv);
return ret;
}
priv = conn->privateData;
xenUnifiedLock(priv);
-#ifndef WITH_XEN_INOTIFY
- if (xenXMConfigCacheRefresh (conn) < 0)
+ if (!xenInotifyActive(conn) && xenXMConfigCacheRefresh (conn) < 0)
goto cleanup;
-#endif
ret = virHashSize(priv->nameConfigMap);
-#ifndef WITH_XEN_INOTIFY
cleanup:
-#endif
xenUnifiedUnlock(priv);
return ret;
}