From: Christian Brauner Date: Sat, 24 Feb 2018 20:36:20 +0000 (+0100) Subject: cgfsng: fix get_hierarchy() for unified hierarchy X-Git-Tag: lxc-3.0.0.beta1~15^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2186%2Fhead;p=thirdparty%2Flxc.git cgfsng: fix get_hierarchy() for unified hierarchy Signed-off-by: Christian Brauner --- diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c index b614a094d..08b49ede3 100644 --- a/src/lxc/cgroups/cgfsng.c +++ b/src/lxc/cgroups/cgfsng.c @@ -327,7 +327,7 @@ struct hierarchy *get_hierarchy(const char *c) !hierarchies[i]->controllers[0]) return hierarchies[i]; - return NULL; + continue; } if (string_in_list(hierarchies[i]->controllers, c)) @@ -1306,8 +1306,11 @@ static bool cg_hybrid_init(void) controller_list = cg_unified_get_controllers(cgv2_ctrl_path); free(cgv2_ctrl_path); - if (!controller_list) + if (!controller_list) { controller_list = cg_unified_make_empty_controller(); + CGFSNG_DEBUG("No controllers are enabled for " + "delegation in the unified hierarchy\n"); + } } new = add_hierarchy(controller_list, mountpoint, base_cgroup, type); @@ -2365,13 +2368,16 @@ static bool cgfsng_unfreeze(void *hdata) return true; } -static const char *cgfsng_get_cgroup(void *hdata, const char *subsystem) +static const char *cgfsng_get_cgroup(void *hdata, const char *controller) { struct hierarchy *h; - h = get_hierarchy(subsystem); - if (!h) + h = get_hierarchy(controller); + if (!h) { + SYSERROR("Failed to find hierarchy for controller \"%s\"", + controller ? controller : "(null)"); return NULL; + } return h->fullcgpath ? h->fullcgpath + strlen(h->mountpoint) : NULL; }