aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-10-24 17:35:19 +0200
committerLennart Poettering <lennart@poettering.net>2018-10-26 18:43:34 +0200
commit03afd780298897f948dab9345c0c4f1bc408bf8d (patch)
tree635f4fcb406807c320f0e09662d7304b89de5076 /src
parentcgroup-util: before operating on a mounted cgroup controller check if it actu... (diff)
downloadsystemd-03afd780298897f948dab9345c0c4f1bc408bf8d.tar.gz
systemd-03afd780298897f948dab9345c0c4f1bc408bf8d.tar.bz2
systemd-03afd780298897f948dab9345c0c4f1bc408bf8d.zip
cgroup: when discovering which controllers the kernel supports mask with what we support
Let's use our new CGROUP_MASK_V1 and CGROUP_MASK_V2 definitions for this.
Diffstat (limited to 'src')
-rw-r--r--src/basic/cgroup-util.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index 520e18e1b..1e159571c 100644
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
@@ -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;
}
}