]> git.ipfire.org Git - pakfire.git/commitdiff
cgroup: Only enable controllers for parent groups
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 27 Mar 2021 16:12:10 +0000 (16:12 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 27 Mar 2021 16:12:10 +0000 (16:12 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/cgroup.c

index 3bc5368673abd5c113f7a5e2c3d0581f88f5c12a..db1c9e423232a8f76f124dd112a851752064a4e7 100644 (file)
@@ -221,9 +221,19 @@ int pakfire_cgroup_create(Pakfire pakfire, const char* group) {
        char* parent = pakfire_cgroup_parent_name(group);
        if (parent) {
                int r = pakfire_cgroup_create(pakfire, parent);
+               if (r) {
+                       free(parent);
+                       return r;
+               }
+
+               // Enable default controllers in all parent groups
+               r = pakfire_cgroup_enable_controllers(pakfire, parent, cgroup_controllers);
+               if (r) {
+                       free(parent);
+                       return r;
+               }
+
                free(parent);
-               if (r)
-                       return 1;
        }
 
        // Make path
@@ -248,13 +258,6 @@ int pakfire_cgroup_create(Pakfire pakfire, const char* group) {
 
        DEBUG(pakfire, "Created cgroup %s\n", group);
 
-       // Enable default controllers
-       r = pakfire_cgroup_enable_controllers(pakfire, group, cgroup_controllers);
-       if (r) {
-               pakfire_cgroup_destroy(pakfire, group);
-               return r;
-       }
-
        return 0;
 }