Re: [lxc-devel] [PATCH 9/5] cgroup: special-case the cgroups used for unprivileged containers

2013-07-26 Thread Serge Hallyn
Btw, at this point I'm done with this set.  The set does work for me,
I'm happy to either apply it (with acks) or not, but either way
feedback much appreciated.

I'll be out next week, so handling of networking for unprivileged
containers will have to wait until I'm back.

-serge

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
___
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel


[lxc-devel] [PATCH 1/1] cgroups: fix the recently broken setting of clone_children

2013-07-26 Thread Serge Hallyn
[ already applied to staging as it's a reasonably bad bug ]

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 
---
 src/lxc/cgroup.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/lxc/cgroup.c b/src/lxc/cgroup.c
index a61d210..cd6cd1a 100644
--- a/src/lxc/cgroup.c
+++ b/src/lxc/cgroup.c
@@ -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;
 
-- 
1.8.3.2


--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
___
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel