[libvirt] [PATCH 2/4] Remove virConnectPtr from LXC driver

Daniel P. Berrange berrange at redhat.com
Tue Feb 9 19:20:33 UTC 2010


The virConnectPtr is no longer required for error reporting since
that is recorded in a thread local. Remove the conn & dom parameters
from lxcError since they're unused. Remove virConnectPtr from all
other internal LXC driver APIs with exception of APIs which need it
to resolve a virNetworkPtr into a bridge device name
---
 src/lxc/lxc_conf.h       |    6 +-
 src/lxc/lxc_container.c  |    6 +-
 src/lxc/lxc_controller.c |   10 ++--
 src/lxc/lxc_driver.c     |  142 ++++++++++++++++++++++-----------------------
 4 files changed, 80 insertions(+), 84 deletions(-)

diff --git a/src/lxc/lxc_conf.h b/src/lxc/lxc_conf.h
index 499617f..d0c5bb1 100644
--- a/src/lxc/lxc_conf.h
+++ b/src/lxc/lxc_conf.h
@@ -63,8 +63,8 @@ struct __lxc_driver {
 int lxcLoadDriverConfig(lxc_driver_t *driver);
 virCapsPtr lxcCapsInit(void);
 
-#define lxcError(conn, dom, code, fmt...)                                    \
-        virReportErrorHelper(conn, VIR_FROM_LXC, code, __FILE__,           \
-                               __FUNCTION__, __LINE__, fmt)
+#define lxcError(code, fmt...)                                          \
+    virReportErrorHelper(NULL, VIR_FROM_LXC, code, __FILE__,            \
+                         __FUNCTION__, __LINE__, fmt)
 
 #endif /* LXC_CONF_H */
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 1cc7ed0..c425154 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -684,13 +684,13 @@ static int lxcContainerDropCapabilities(void)
                              CAP_AUDIT_CONTROL, /* No messing with auditing status */
                              CAP_MAC_ADMIN, /* No messing with LSM config */
                              -1 /* sentinal */)) < 0) {
-        lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("Failed to remove capabilities: %d"), ret);
         return -1;
     }
 
     if ((ret = capng_apply(CAPNG_SELECT_BOTH)) < 0) {
-        lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("Failed to apply capabilities: %d"), ret);
         return -1;
     }
@@ -729,7 +729,7 @@ static int lxcContainerChild( void *data )
     virDomainFSDefPtr root;
 
     if (NULL == vmDef) {
-        lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  "%s", _("lxcChild() passed invalid vm definition"));
         return -1;
     }
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 7a45989..3d45ad2 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -179,7 +179,7 @@ static int lxcMonitorServer(const char *sockpath)
     memset(&addr, 0, sizeof(addr));
     addr.sun_family = AF_UNIX;
     if (virStrcpyStatic(addr.sun_path, sockpath) == NULL) {
-        lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("Socket path %s too long for destination"), sockpath);
         goto error;
     }
@@ -253,7 +253,7 @@ static int lxcControllerClearCapabilities(void)
     capng_clear(CAPNG_SELECT_BOTH);
 
     if ((ret = capng_apply(CAPNG_SELECT_BOTH)) < 0) {
-        lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("failed to apply capabilities: %d"), ret);
         return -1;
     }
@@ -380,7 +380,7 @@ static int lxcControllerMain(int monitor,
                     DEBUG("EPOLLHUP from fd %d", epollEvent.data.fd);
                     continue;
                 } else {
-                    lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+                    lxcError(VIR_ERR_INTERNAL_ERROR,
                              _("error event %d"), epollEvent.events);
                     goto cleanup;
                 }
@@ -451,7 +451,7 @@ static int lxcControllerMoveInterfaces(unsigned int nveths,
     unsigned int i;
     for (i = 0 ; i < nveths ; i++)
         if (moveInterfaceToNetNs(veths[i], container) < 0) {
-            lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      _("Failed to move interface %s to ns %d"),
                      veths[i], container);
             return -1;
@@ -476,7 +476,7 @@ static int lxcControllerCleanupInterfaces(unsigned int nveths,
     unsigned int i;
     for (i = 0 ; i < nveths ; i++)
         if (vethDelete(veths[i]) < 0)
-            lxcError(NULL, NULL, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      _("Failed to delete veth: %s"), veths[i]);
             /* will continue to try to cleanup any other interfaces */
 
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 335a6db..d7b9631 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -127,7 +127,7 @@ static virDrvOpenStatus lxcOpen(virConnectPtr conn,
 
         /* If path isn't '/' then they typoed, tell them correct path */
         if (STRNEQ(conn->uri->path, "/")) {
-            lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      _("Unexpected LXC URI path '%s', try lxc:///"),
                      conn->uri->path);
             return VIR_DRV_OPEN_ERROR;
@@ -135,7 +135,7 @@ static virDrvOpenStatus lxcOpen(virConnectPtr conn,
 
         /* URI was good, but driver isn't active */
         if (lxc_driver == NULL) {
-            lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      "%s", _("lxc state driver is not active"));
             return VIR_DRV_OPEN_ERROR;
         }
@@ -198,7 +198,7 @@ static virDomainPtr lxcDomainLookupByID(virConnectPtr conn,
     lxcDriverUnlock(driver);
 
     if (!vm) {
-        lxcError(conn, NULL, VIR_ERR_NO_DOMAIN, NULL);
+        lxcError(VIR_ERR_NO_DOMAIN, NULL);
         goto cleanup;
     }
 
@@ -224,7 +224,7 @@ static virDomainPtr lxcDomainLookupByUUID(virConnectPtr conn,
     lxcDriverUnlock(driver);
 
     if (!vm) {
-        lxcError(conn, NULL, VIR_ERR_NO_DOMAIN, NULL);
+        lxcError(VIR_ERR_NO_DOMAIN, NULL);
         goto cleanup;
     }
 
@@ -249,7 +249,7 @@ static virDomainPtr lxcDomainLookupByName(virConnectPtr conn,
     vm = virDomainFindByName(&driver->domains, name);
     lxcDriverUnlock(driver);
     if (!vm) {
-        lxcError(conn, NULL, VIR_ERR_NO_DOMAIN, NULL);
+        lxcError(VIR_ERR_NO_DOMAIN, NULL);
         goto cleanup;
     }
 
@@ -274,7 +274,7 @@ static int lxcDomainIsActive(virDomainPtr dom)
     obj = virDomainFindByUUID(&driver->domains, dom->uuid);
     lxcDriverUnlock(driver);
     if (!obj) {
-        lxcError(dom->conn, NULL, VIR_ERR_NO_DOMAIN, NULL);
+        lxcError(VIR_ERR_NO_DOMAIN, NULL);
         goto cleanup;
     }
     ret = virDomainObjIsActive(obj);
@@ -296,7 +296,7 @@ static int lxcDomainIsPersistent(virDomainPtr dom)
     obj = virDomainFindByUUID(&driver->domains, dom->uuid);
     lxcDriverUnlock(driver);
     if (!obj) {
-        lxcError(dom->conn, NULL, VIR_ERR_NO_DOMAIN, NULL);
+        lxcError(VIR_ERR_NO_DOMAIN, NULL);
         goto cleanup;
     }
     ret = obj->persistent;
@@ -374,7 +374,7 @@ static virDomainPtr lxcDomainDefine(virConnectPtr conn, const char *xml)
         goto cleanup;
 
     if ((def->nets != NULL) && !(driver->have_netns)) {
-        lxcError(conn, NULL, VIR_ERR_NO_SUPPORT,
+        lxcError(VIR_ERR_NO_SUPPORT,
                  "%s", _("System lacks NETNS support"));
         goto cleanup;
     }
@@ -423,19 +423,19 @@ static int lxcDomainUndefine(virDomainPtr dom)
     lxcDriverLock(driver);
     vm = virDomainFindByUUID(&driver->domains, dom->uuid);
     if (!vm) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
+        lxcError(VIR_ERR_INVALID_DOMAIN,
                  "%s", _("No domain with matching uuid"));
         goto cleanup;
     }
 
     if (virDomainObjIsActive(vm)) {
-        lxcError(dom->conn, dom, VIR_ERR_OPERATION_INVALID,
+        lxcError(VIR_ERR_OPERATION_INVALID,
                  "%s", _("Cannot delete active domain"));
         goto cleanup;
     }
 
     if (!vm->persistent) {
-        lxcError(dom->conn, dom, VIR_ERR_OPERATION_INVALID,
+        lxcError(VIR_ERR_OPERATION_INVALID,
                  "%s", _("Cannot undefine transient domain"));
         goto cleanup;
     }
@@ -475,7 +475,7 @@ static int lxcDomainGetInfo(virDomainPtr dom,
     vm = virDomainFindByUUID(&driver->domains, dom->uuid);
 
     if (!vm) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
+        lxcError(VIR_ERR_INVALID_DOMAIN,
                  "%s", _("No domain with matching uuid"));
         goto cleanup;
     }
@@ -487,18 +487,18 @@ static int lxcDomainGetInfo(virDomainPtr dom,
         info->memory = vm->def->memory;
     } else {
         if (virCgroupForDomain(driver->cgroup, vm->def->name, &cgroup, 0) != 0) {
-            lxcError(dom->conn, dom, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      _("Unable to get cgroup for %s"), vm->def->name);
             goto cleanup;
         }
 
         if (virCgroupGetCpuacctUsage(cgroup, &(info->cpuTime)) < 0) {
-            lxcError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
+            lxcError(VIR_ERR_OPERATION_FAILED,
                      "%s", _("Cannot read cputime for domain"));
             goto cleanup;
         }
         if (virCgroupGetMemoryUsage(cgroup, &(info->memory)) < 0) {
-            lxcError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
+            lxcError(VIR_ERR_OPERATION_FAILED,
                      "%s", _("Cannot read memory usage for domain"));
             goto cleanup;
         }
@@ -528,7 +528,7 @@ static char *lxcGetOSType(virDomainPtr dom)
     lxcDriverUnlock(driver);
 
     if (!vm) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
+        lxcError(VIR_ERR_INVALID_DOMAIN,
                  "%s", _("No domain with matching uuid"));
         goto cleanup;
     }
@@ -557,7 +557,7 @@ static unsigned long lxcDomainGetMaxMemory(virDomainPtr dom) {
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                          _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
@@ -582,13 +582,13 @@ static int lxcDomainSetMaxMemory(virDomainPtr dom, unsigned long newmax) {
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                          _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
 
     if (newmax < vm->def->memory) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_ARG,
+        lxcError(VIR_ERR_INVALID_ARG,
                          "%s", _("Cannot set max memory lower than current memory"));
         goto cleanup;
     }
@@ -614,26 +614,26 @@ static int lxcDomainSetMemory(virDomainPtr dom, unsigned long newmem) {
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                  _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
 
     if (newmem > vm->def->maxmem) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_ARG,
+        lxcError(VIR_ERR_INVALID_ARG,
                  "%s", _("Cannot set memory higher than max memory"));
         goto cleanup;
     }
 
     if (virDomainObjIsActive(vm)) {
         if (virCgroupForDomain(driver->cgroup, vm->def->name, &cgroup, 0) != 0) {
-            lxcError(dom->conn, dom, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      _("Unable to get cgroup for %s\n"), vm->def->name);
             goto cleanup;
         }
 
         if (virCgroupSetMemory(cgroup, newmem) < 0) {
-            lxcError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
+            lxcError(VIR_ERR_OPERATION_FAILED,
                      "%s", _("Failed to set memory for domain"));
             goto cleanup;
         }
@@ -662,7 +662,7 @@ static char *lxcDomainDumpXML(virDomainPtr dom,
     lxcDriverUnlock(driver);
 
     if (!vm) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
+        lxcError(VIR_ERR_INVALID_DOMAIN,
                  "%s", _("No domain with matching uuid"));
         goto cleanup;
     }
@@ -691,8 +691,7 @@ cleanup:
  *
  * Returns 0 on success or -1 in case of error
  */
-static int lxcVmCleanup(virConnectPtr conn,
-                        lxc_driver_t *driver,
+static int lxcVmCleanup(lxc_driver_t *driver,
                         virDomainObjPtr  vm)
 {
     int rc = -1;
@@ -723,7 +722,7 @@ static int lxcVmCleanup(virConnectPtr conn,
     close(priv->monitor);
 
     virFileDeletePid(driver->stateDir, vm->def->name);
-    virDomainDeleteConfig(conn, driver->stateDir, NULL, vm);
+    virDomainDeleteConfig(NULL, driver->stateDir, NULL, vm);
 
     vm->state = VIR_DOMAIN_SHUTOFF;
     vm->pid = -1;
@@ -801,7 +800,7 @@ static int lxcSetupInterfaces(virConnectPtr conn,
 
         DEBUG("bridge: %s", bridge);
         if (NULL == bridge) {
-            lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      "%s", _("Failed to get bridge for interface"));
             goto error_exit;
         }
@@ -812,7 +811,7 @@ static int lxcSetupInterfaces(virConnectPtr conn,
         }
         DEBUG("parentVeth: %s, containerVeth: %s", parentVeth, containerVeth);
         if (0 != (rc = vethCreate(parentVeth, PATH_MAX, containerVeth, PATH_MAX))) {
-            lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+            lxcError(VIR_ERR_INTERNAL_ERROR,
                      _("Failed to create veth device pair: %d"), rc);
             goto error_exit;
         }
@@ -869,8 +868,7 @@ error_exit:
 }
 
 
-static int lxcMonitorClient(virConnectPtr conn,
-                            lxc_driver_t * driver,
+static int lxcMonitorClient(lxc_driver_t * driver,
                             virDomainObjPtr vm)
 {
     char *sockpath = NULL;
@@ -892,7 +890,7 @@ static int lxcMonitorClient(virConnectPtr conn,
     memset(&addr, 0, sizeof(addr));
     addr.sun_family = AF_UNIX;
     if (virStrcpyStatic(addr.sun_path, sockpath) == NULL) {
-        lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("Socket path %s too big for destination"), sockpath);
         goto error;
     }
@@ -914,8 +912,7 @@ error:
 }
 
 
-static int lxcVmTerminate(virConnectPtr conn,
-                          lxc_driver_t *driver,
+static int lxcVmTerminate(lxc_driver_t *driver,
                           virDomainObjPtr vm,
                           int signum)
 {
@@ -923,7 +920,7 @@ static int lxcVmTerminate(virConnectPtr conn,
         signum = SIGINT;
 
     if (vm->pid <= 0) {
-        lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("Invalid PID %d for container"), vm->pid);
         return -1;
     }
@@ -939,7 +936,7 @@ static int lxcVmTerminate(virConnectPtr conn,
 
     vm->state = VIR_DOMAIN_SHUTDOWN;
 
-    return lxcVmCleanup(conn, driver, vm);
+    return lxcVmCleanup(driver, vm);
 }
 
 static void lxcMonitorEvent(int watch,
@@ -963,7 +960,7 @@ static void lxcMonitorEvent(int watch,
         goto cleanup;
     }
 
-    if (lxcVmTerminate(NULL, driver, vm, SIGINT) < 0) {
+    if (lxcVmTerminate(driver, vm, SIGINT) < 0) {
         virEventRemoveHandle(watch);
     } else {
         event = virDomainEventNewFromObj(vm,
@@ -986,7 +983,7 @@ cleanup:
 }
 
 
-static int lxcControllerStart(virConnectPtr conn,
+static int lxcControllerStart(lxc_driver_t *driver,
                               virDomainObjPtr vm,
                               int nveths,
                               char **veths,
@@ -1008,7 +1005,6 @@ static int lxcControllerStart(virConnectPtr conn,
     fd_set keepfd;
     char appPtyStr[30];
     const char *emulator;
-    lxc_driver_t *driver = conn->privateData;
 
     FD_ZERO(&keepfd);
 
@@ -1138,7 +1134,7 @@ static int lxcControllerStart(virConnectPtr conn,
     }
 
     if (!(WIFEXITED(status) && WEXITSTATUS(status) == 0)) {
-        lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("Container '%s' unexpectedly shutdown during startup"),
                  largv[0]);
         goto cleanup;
@@ -1235,7 +1231,7 @@ static int lxcVmStart(virConnectPtr conn,
         goto cleanup;
     }
 
-    if (lxcControllerStart(conn,
+    if (lxcControllerStart(driver,
                            vm,
                            nveths, veths,
                            parentTty, logfd) < 0)
@@ -1244,7 +1240,7 @@ static int lxcVmStart(virConnectPtr conn,
     /* Connect to the controller as a client *first* because
      * this will block until the child has written their
      * pid file out to disk */
-    if ((priv->monitor = lxcMonitorClient(conn, driver, vm)) < 0)
+    if ((priv->monitor = lxcMonitorClient(driver, vm)) < 0)
         goto cleanup;
 
     /* And get its pid */
@@ -1263,7 +1259,7 @@ static int lxcVmStart(virConnectPtr conn,
              VIR_EVENT_HANDLE_ERROR | VIR_EVENT_HANDLE_HANGUP,
              lxcMonitorEvent,
              vm, NULL)) < 0) {
-        lxcVmTerminate(conn, driver, vm, 0);
+        lxcVmTerminate(driver, vm, 0);
         goto cleanup;
     }
 
@@ -1305,13 +1301,13 @@ static int lxcDomainStart(virDomainPtr dom)
     lxcDriverLock(driver);
     vm = virDomainFindByName(&driver->domains, dom->name);
     if (!vm) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
+        lxcError(VIR_ERR_INVALID_DOMAIN,
                  _("No domain named %s"), dom->name);
         goto cleanup;
     }
 
     if ((vm->def->nets != NULL) && !(driver->have_netns)) {
-        lxcError(dom->conn, NULL, VIR_ERR_NO_SUPPORT,
+        lxcError(VIR_ERR_NO_SUPPORT,
                  "%s", _("System lacks NETNS support"));
         goto cleanup;
     }
@@ -1361,7 +1357,7 @@ lxcDomainCreateAndStart(virConnectPtr conn,
         goto cleanup;
 
     if ((def->nets != NULL) && !(driver->have_netns)) {
-        lxcError(conn, NULL, VIR_ERR_NO_SUPPORT,
+        lxcError(VIR_ERR_NO_SUPPORT,
                  "%s", _("System lacks NETNS support"));
         goto cleanup;
     }
@@ -1414,12 +1410,12 @@ static int lxcDomainShutdown(virDomainPtr dom)
     lxcDriverLock(driver);
     vm = virDomainFindByID(&driver->domains, dom->id);
     if (!vm) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
+        lxcError(VIR_ERR_INVALID_DOMAIN,
                  _("No domain with id %d"), dom->id);
         goto cleanup;
     }
 
-    ret = lxcVmTerminate(dom->conn, driver, vm, 0);
+    ret = lxcVmTerminate(driver, vm, 0);
     event = virDomainEventNewFromObj(vm,
                                      VIR_DOMAIN_EVENT_STOPPED,
                                      VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
@@ -1547,12 +1543,12 @@ static int lxcDomainDestroy(virDomainPtr dom)
     lxcDriverLock(driver);
     vm = virDomainFindByID(&driver->domains, dom->id);
     if (!vm) {
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_DOMAIN,
+        lxcError(VIR_ERR_INVALID_DOMAIN,
                  _("No domain with id %d"), dom->id);
         goto cleanup;
     }
 
-    ret = lxcVmTerminate(dom->conn, driver, vm, SIGKILL);
+    ret = lxcVmTerminate(driver, vm, SIGKILL);
     event = virDomainEventNewFromObj(vm,
                                      VIR_DOMAIN_EVENT_STOPPED,
                                      VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
@@ -1650,7 +1646,7 @@ lxcReconnectVM(void *payload, const char *name ATTRIBUTE_UNUSED, void *opaque)
     virDomainObjLock(vm);
 
     priv = vm->privateData;
-    if ((priv->monitor = lxcMonitorClient(NULL, driver, vm)) < 0) {
+    if ((priv->monitor = lxcMonitorClient(driver, vm)) < 0) {
         goto cleanup;
     }
 
@@ -1683,7 +1679,7 @@ lxcReconnectVM(void *payload, const char *name ATTRIBUTE_UNUSED, void *opaque)
                  VIR_EVENT_HANDLE_ERROR | VIR_EVENT_HANDLE_HANGUP,
                  lxcMonitorEvent,
                  vm, NULL)) < 0) {
-            lxcVmTerminate(NULL, driver, vm, 0);
+            lxcVmTerminate(driver, vm, 0);
             goto cleanup;
         }
     } else {
@@ -1870,7 +1866,7 @@ lxcActive(void) {
     return active;
 }
 
-static int lxcVersion(virConnectPtr conn, unsigned long *version)
+static int lxcVersion(virConnectPtr conn ATTRIBUTE_UNUSED, unsigned long *version)
 {
     struct utsname ver;
     int maj;
@@ -1880,7 +1876,7 @@ static int lxcVersion(virConnectPtr conn, unsigned long *version)
     uname(&ver);
 
     if (sscanf(ver.release, "%i.%i.%i", &maj, &min, &rev) != 3) {
-        lxcError(conn, NULL, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("Unknown release: %s"), ver.release);
         return -1;
     }
@@ -1923,7 +1919,7 @@ static int lxcSetSchedulerParameters(virDomainPtr domain,
     vm = virDomainFindByUUID(&driver->domains, domain->uuid);
 
     if (vm == NULL) {
-        lxcError(NULL, domain, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("No such domain %s"), domain->uuid);
         goto cleanup;
     }
@@ -1934,7 +1930,7 @@ static int lxcSetSchedulerParameters(virDomainPtr domain,
     for (i = 0; i < nparams; i++) {
         virSchedParameterPtr param = &params[i];
         if (param->type != VIR_DOMAIN_SCHED_FIELD_ULLONG) {
-            lxcError(NULL, domain, VIR_ERR_INVALID_ARG, "%s",
+            lxcError(VIR_ERR_INVALID_ARG, "%s",
                      _("Invalid type for cpu_shares tunable, expected a 'ullong'"));
             goto cleanup;
         }
@@ -1943,7 +1939,7 @@ static int lxcSetSchedulerParameters(virDomainPtr domain,
             if (virCgroupSetCpuShares(group, params[i].value.ul) != 0)
                 goto cleanup;
         } else {
-            lxcError(NULL, domain, VIR_ERR_INVALID_ARG,
+            lxcError(VIR_ERR_INVALID_ARG,
                      _("Invalid parameter `%s'"), param->field);
             goto cleanup;
         }
@@ -1972,7 +1968,7 @@ static int lxcGetSchedulerParameters(virDomainPtr domain,
         return -1;
 
     if ((*nparams) != 1) {
-        lxcError(NULL, domain, VIR_ERR_INVALID_ARG,
+        lxcError(VIR_ERR_INVALID_ARG,
                  "%s", _("Invalid parameter count"));
         return -1;
     }
@@ -1981,7 +1977,7 @@ static int lxcGetSchedulerParameters(virDomainPtr domain,
     vm = virDomainFindByUUID(&driver->domains, domain->uuid);
 
     if (vm == NULL) {
-        lxcError(NULL, domain, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  _("No such domain %s"), domain->uuid);
         goto cleanup;
     }
@@ -1993,7 +1989,7 @@ static int lxcGetSchedulerParameters(virDomainPtr domain,
         goto cleanup;
     params[0].value.ul = val;
     if (virStrcpyStatic(params[0].field, "cpu_shares") == NULL) {
-        lxcError(NULL, domain, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  "%s", _("Field cpu_shares too big for destination"));
         goto cleanup;
     }
@@ -2027,13 +2023,13 @@ lxcDomainInterfaceStats(virDomainPtr dom,
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                  _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
 
     if (!virDomainObjIsActive(vm)) {
-        lxcError(dom->conn, dom, VIR_ERR_OPERATION_INVALID,
+        lxcError(VIR_ERR_OPERATION_INVALID,
                  "%s", _("Domain is not running"));
         goto cleanup;
     }
@@ -2050,7 +2046,7 @@ lxcDomainInterfaceStats(virDomainPtr dom,
     if (ret == 0)
         ret = linuxDomainInterfaceStats(path, stats);
     else
-        lxcError(dom->conn, dom, VIR_ERR_INVALID_ARG,
+        lxcError(VIR_ERR_INVALID_ARG,
                  _("Invalid path, '%s' is not a known interface"), path);
 
 cleanup:
@@ -2063,7 +2059,7 @@ static int
 lxcDomainInterfaceStats(virDomainPtr dom,
                         const char *path ATTRIBUTE_UNUSED,
                         struct _virDomainInterfaceStats *stats ATTRIBUTE_UNUSED)
-    lxcError(dom->conn, dom, VIR_ERR_NO_SUPPORT, "%s", __FUNCTION__);
+    lxcError(VIR_ERR_NO_SUPPORT, "%s", __FUNCTION__);
     return -1;
 }
 #endif
@@ -2081,7 +2077,7 @@ static int lxcDomainGetAutostart(virDomainPtr dom,
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                  _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
@@ -2108,13 +2104,13 @@ static int lxcDomainSetAutostart(virDomainPtr dom,
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                  _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
 
     if (!vm->persistent) {
-        lxcError(dom->conn, dom, VIR_ERR_INTERNAL_ERROR,
+        lxcError(VIR_ERR_INTERNAL_ERROR,
                  "%s", _("Cannot set autostart for transient domain"));
         goto cleanup;
     }
@@ -2277,20 +2273,20 @@ static int lxcDomainSuspend(virDomainPtr dom)
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                  _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
 
     if (!virDomainObjIsActive(vm)) {
-        lxcError(dom->conn, dom, VIR_ERR_OPERATION_INVALID,
+        lxcError(VIR_ERR_OPERATION_INVALID,
                  "%s", _("Domain is not running"));
         goto cleanup;
     }
 
     if (vm->state != VIR_DOMAIN_PAUSED) {
         if (lxcFreezeContainer(driver, vm) < 0) {
-            lxcError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
+            lxcError(VIR_ERR_OPERATION_FAILED,
                      "%s", _("Suspend operation failed"));
             goto cleanup;
         }
@@ -2342,20 +2338,20 @@ static int lxcDomainResume(virDomainPtr dom)
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];
         virUUIDFormat(dom->uuid, uuidstr);
-        lxcError(dom->conn, dom, VIR_ERR_NO_DOMAIN,
+        lxcError(VIR_ERR_NO_DOMAIN,
                  _("No domain with matching uuid '%s'"), uuidstr);
         goto cleanup;
     }
 
     if (!virDomainObjIsActive(vm)) {
-        lxcError(dom->conn, dom, VIR_ERR_OPERATION_INVALID,
+        lxcError(VIR_ERR_OPERATION_INVALID,
                  "%s", _("Domain is not running"));
         goto cleanup;
     }
 
     if (vm->state == VIR_DOMAIN_PAUSED) {
         if (lxcUnfreezeContainer(driver, vm) < 0) {
-            lxcError(dom->conn, dom, VIR_ERR_OPERATION_FAILED,
+            lxcError(VIR_ERR_OPERATION_FAILED,
                      "%s", _("Resume operation failed"));
             goto cleanup;
         }
-- 
1.6.6




More information about the libvir-list mailing list