On 2013/4/15 1:37, Tejun Heo wrote: >>From 277f3d4be79aefe2071d9053a9c7c89c4e5dad30 Mon Sep 17 00:00:00 2001 > From: Tejun Heo <tj@xxxxxxxxxx> > Date: Sun, 14 Apr 2013 10:32:19 -0700 > > While reimplementing cgroup_path(), 65dff759d2 ("cgroup: fix > cgroup_path() vs rename() race") introduced a bug where the path of a > non-root cgroup would have two slahses at the beginning, which is > caused by adding '/' before the name of the root cgroup which is an > empty string. > I guess I booted a wrong kernel when testing that patch... > $ grep systemd /proc/self/cgroup > 1:name=systemd://user/root/1 > > Fix it by special casing root cgroup. > I made a patch to fix it before the weekend, but didn't post it. It doesn't treat root-only cgroup specially. You can apply whichever you like better. > Signed-off-by: Tejun Heo <tj@xxxxxxxxxx> > Cc: Li Zefan <lizefan@xxxxxxxxxx> > --- > Applying to cgroup/for-3.10. > > Thanks. > > kernel/cgroup.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > [PATCH] cgroup: make cgroup_path() not print double slashes While reimplementing cgroup_path(), 65dff759d2 ("cgroup: fix cgroup_path() vs rename() race") introduced a bug where the path of a non-root cgroup would have two slahses at the beginning, which is caused by treating the root cgroup which has the name '/' like non-root cgroups. Fix it by not adding '/' if it's the root cgroup. $ grep systemd /proc/self/cgroup 1:name=systemd://user/root/1 Signed-off-by: Li Zefan <lizefan@xxxxxxxxxx> --- kernel/cgroup.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 06aeb42..2a28425 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -1809,14 +1809,15 @@ int cgroup_path(const struct cgroup *cgrp, char *buf, int buflen) goto out; memcpy(start, name, len); - if (!cgrp->parent) + cgrp = cgrp->parent; + if (!cgrp) break; + if (!cgrp->parent) + continue; if (--start < buf) goto out; *start = '/'; - - cgrp = cgrp->parent; } ret = 0; memmove(buf, start, buf + buflen - start); -- 1.8.0.2 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers