]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
cgfsng: fix get_hierarchy() for unified hierarchy 2186/head
authorChristian Brauner <christian.brauner@ubuntu.com>
Sat, 24 Feb 2018 20:36:20 +0000 (21:36 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Sat, 24 Feb 2018 20:38:44 +0000 (21:38 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cgroups/cgfsng.c

index b614a094d00cc1b062bb3f5314adc41aee2fb50b..08b49ede37afd58bcc811512b8c1f39edba05764 100644 (file)
@@ -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;
 }