[PATCH 03/10] Ensure LXC container exits if cgroups setup fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Daniel P. Berrange" <berrange@xxxxxxxxxx>

The code setting up LXC cgroups used an 'rc' variable both
for capturing the return value of methods it calls, and
its own return status. The result was that several failures
in setting up cgroups would actually result in success being
returned.

Use a separate 'ret' for tracking return value as per normal
code design in other parts of libvirt

Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx>
---
 src/lxc/lxc_cgroup.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/lxc/lxc_cgroup.c b/src/lxc/lxc_cgroup.c
index bdfaa54..ed86b43 100644
--- a/src/lxc/lxc_cgroup.c
+++ b/src/lxc/lxc_cgroup.c
@@ -224,7 +224,8 @@ int virLXCCgroupSetup(virDomainDefPtr def)
 {
     virCgroupPtr driver = NULL;
     virCgroupPtr cgroup = NULL;
-    int rc = -1;
+    int ret = -1;
+    int rc;
 
     rc = virCgroupForDriver("lxc", &driver, 1, 0);
     if (rc != 0) {
@@ -234,7 +235,7 @@ int virLXCCgroupSetup(virDomainDefPtr def)
 
         virReportSystemError(-rc, "%s",
                              _("Unable to get cgroup for driver"));
-        return rc;
+        goto cleanup;
     }
 
     rc = virCgroupForDomain(driver, def->name, &cgroup, 1);
@@ -262,11 +263,14 @@ int virLXCCgroupSetup(virDomainDefPtr def)
         virReportSystemError(-rc,
                              _("Unable to add task %d to cgroup for domain %s"),
                              getpid(), def->name);
+        goto cleanup;
     }
 
+    ret = 0;
+
 cleanup:
     virCgroupFree(&cgroup);
     virCgroupFree(&driver);
 
-    return rc;
+    return ret;
 }
-- 
1.7.11.2

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


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]