]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cgroup: when discovering which controllers the kernel supports mask with what we...
authorLennart Poettering <lennart@poettering.net>
Wed, 24 Oct 2018 15:35:19 +0000 (17:35 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 26 Oct 2018 16:43:34 +0000 (18:43 +0200)
Let's use our new CGROUP_MASK_V1 and CGROUP_MASK_V2 definitions for
this.

src/basic/cgroup-util.c

index 520e18e1b0e7eeb67c56bc30a119b006106e2aa2..1e159571c22fe17b4483282aa0f4b355836487a8 100644 (file)
@@ -2377,24 +2377,26 @@ int cg_mask_supported(CGroupMask *ret) {
                 if (r < 0)
                         return r;
 
-                /* Currently, we support the cpu, memory, io and pids
-                 * controller in the unified hierarchy, mask
+                /* Currently, we support the cpu, memory, io and pids controller in the unified hierarchy, mask
                  * everything else off. */
-                mask &= CGROUP_MASK_CPU | CGROUP_MASK_MEMORY | CGROUP_MASK_IO | CGROUP_MASK_PIDS;
+                mask &= CGROUP_MASK_V2;
 
         } else {
                 CGroupController c;
 
-                /* In the legacy hierarchy, we check whether which
-                 * hierarchies are mounted. */
+                /* In the legacy hierarchy, we check which hierarchies are mounted. */
 
                 mask = 0;
                 for (c = 0; c < _CGROUP_CONTROLLER_MAX; c++) {
+                        CGroupMask bit = CGROUP_CONTROLLER_TO_MASK(c);
                         const char *n;
 
+                        if (!FLAGS_SET(CGROUP_MASK_V1, bit))
+                                continue;
+
                         n = cgroup_controller_to_string(c);
                         if (controller_is_accessible(n) >= 0)
-                                mask |= CGROUP_CONTROLLER_TO_MASK(c);
+                                mask |= bit;
                 }
         }