From a326637e32621b6776e22d0a0c4f5996c54746f3 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Thu, 2 Dec 2010 15:00:40 +0100 Subject: [PATCH] There is a bogus test in cgroup_get_parent_name which returns error in situation when 0 should be return. This causes problem e.g. when a hierarchy is mounted to two mount points. CHANGELOG: - the test is not removed but moved to the else part EXAMPLE: $ cat aux.conf mount { cpu = /cgroup/cpu; cpuacct = /cgroup/cpu; memory = /cgroup/memory; } group hXAjiy/wWRq { cpu {} memory {} } $ mkdir /mnt/cgroups/cpu 2>/dev/null $ mount -t cgroup -o cpu,cpuacct cpu /mnt/cgroups/cpu $ time cgconfigparser -l aux.conf $ cgclear $ cat /proc/cgroups OLD output #subsys_name hierarchy num_cgroups enabled cpuset 0 1 1 ns 0 1 1 cpu 301 1 1 cpuacct 301 1 1 memory 303 3 1 devices 0 1 1 freezer 0 1 1 net_cls 0 1 1 blkio 0 1 1 New output #subsys_name hierarchy num_cgroups enabled cpuset 0 1 1 ns 0 1 1 cpu 0 1 1 cpuacct 0 1 1 memory 0 1 1 devices 0 1 1 freezer 0 1 1 net_cls 0 1 1 blkio 0 1 1 Signed-off-by: Ivana Hutarova Varekova Acked-by: Dhaval Giani Acked-by: Jan Safranek Acked-by: Balbir Singh Signed-off-by: Jan Safranek --- src/api.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/api.c b/src/api.c index a51230bd..7e2903dc 100644 --- a/src/api.c +++ b/src/api.c @@ -1512,12 +1512,11 @@ static int cgroup_get_parent_name(struct cgroup *cgroup, char **parent) } else { *parent = strdup(pdir); + if (*parent == NULL) + ret = ECGFAIL; } free(dir); - if (*parent == NULL) - ret = ECGFAIL; - return ret; } -- 2.47.2