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-2.0.10~201 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=39a30bc9090ebc49019142e2b5aac3afd2345a8e;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 10086fb44..22403d765 100644 --- a/src/lxc/cgroups/cgfsng.c +++ b/src/lxc/cgroups/cgfsng.c @@ -318,7 +318,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)) @@ -1295,8 +1295,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); @@ -2343,13 +2346,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; }