[CRIU] [PATCH] cgroups: don't take into account a leading / for the "/" parent
Andrew Vagin
avagin at openvz.org
Mon Aug 25 07:05:04 PDT 2014
Without this patch, we dump somethin like this:
{
cnames: "hugetlb"
dirs: {
dir_name: ""
children: {
dir_name: "ewroot"
children: <empty>
properties: <empty>
}
properties: <empty>
}
}
It's obvious, that dir_name should be newroot.
The problem is reproduced, if a task leaves in "/" and has a subgroup.
This issue was caught by a chance. The cgroup02 test doesn't clean up
controllers and leaves the "newroot" there. So when we executed a cgroup
test after cgroup02, we could find many directories like "ewroot",
"wroot", etc. This patch fixes this issue.
Signed-off-by: Andrew Vagin <avagin at openvz.org>
---
cgroup.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/cgroup.c b/cgroup.c
index d4b71a3..e76b295 100644
--- a/cgroup.c
+++ b/cgroup.c
@@ -676,7 +676,9 @@ static int dump_cg_dirs(struct list_head *dirs, size_t n_dirs, CgroupDirEntry **
list_for_each_entry(cur, dirs, siblings) {
cgroup_dir_entry__init(cde);
- cde->dir_name = cur->path + poff + 1 /* leading / */;
+ cde->dir_name = cur->path + poff;
+ if (poff != 1) /* parent isn't "/" */
+ cde->dir_name++; /* leading / */
cde->n_children = cur->n_children;
if (cur->n_children > 0)
if (dump_cg_dirs(&cur->children, cur->n_children, &cde->children, strlen(cur->path)) < 0) {
--
1.9.3
More information about the CRIU
mailing list