]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
cgroups: fix the recently broken setting of clone_children
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Fri, 26 Jul 2013 20:57:10 +0000 (22:57 +0200)
committerSerge Hallyn <serge.hallyn@ubuntu.com>
Fri, 26 Jul 2013 21:00:16 +0000 (16:00 -0500)
Several places think that the current cgroup will be NULL rather
than "/" when we're in the root cgroup.  Fix that.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
src/lxc/cgroup.c

index a61d21058021c935b90bf16d6eb501316d9d2ca3..cd6cd1aa7f700fe6001f76a69805ee7d52f9e2f9 100644 (file)
@@ -606,8 +606,7 @@ static int create_lxcgroups(const char *lxcgroup)
                 * TODO - handle case where lxcgroup has subdirs?  (i.e. build/l1)
                 * We probably only want to support that for /users/joe
                 */
-               ret = snprintf(path, MAXPATHLEN, "%s/%s",
-                              mntent_r.mnt_dir, lxcgroup ? lxcgroup : "lxc");
+               ret = snprintf(path, MAXPATHLEN, "%s/%s", mntent_r.mnt_dir, lxcgroup);
                if (ret < 0 || ret >= MAXPATHLEN)
                        goto fail;
                if (access(path, F_OK)) {
@@ -663,6 +662,8 @@ char *lxc_cgroup_path_create(const char *lxcgroup, const char *name)
 
        char buf[LARGE_MAXPATHLEN] = {0};
 
+       if (!lxcgroup || strlen(lxcgroup) == 0 || strcmp(lxcgroup, "/") == 0)
+               lxcgroup = "lxc";
        if (!allcgroups)
                return NULL;
 
@@ -702,12 +703,12 @@ again:
 
                /* find unused mnt_dir + lxcgroup + name + -$i */
                ret = snprintf(path, MAXPATHLEN, "%s/%s/%s%s", mntent_r.mnt_dir,
-                              lxcgroup ? lxcgroup : "lxc", name, tail);
+                              lxcgroup, name, tail);
                if (ret < 0 || ret >= MAXPATHLEN)
                        goto fail;
 
                INFO("lxcgroup %s name %s tail %s, makes path .%s.",
-                       lxcgroup ? lxcgroup : "lxc", name, tail, path);
+                       lxcgroup, name, tail, path);
 
                if (access(path, F_OK) == 0) goto next;
 
@@ -721,8 +722,7 @@ again:
        endmntent(file);
 
        // print out the cgpath part
-       ret = snprintf(path, MAXPATHLEN, "%s/%s%s",
-                      lxcgroup ? lxcgroup : "lxc", name, tail);
+       ret = snprintf(path, MAXPATHLEN, "%s/%s%s", lxcgroup, name, tail);
        if (ret < 0 || ret >= MAXPATHLEN) // can't happen
                goto fail;