diff options
author | Lennart Poettering <lennart@poettering.net> | 2018-10-24 17:35:19 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2018-10-26 18:43:34 +0200 |
commit | 03afd780298897f948dab9345c0c4f1bc408bf8d (patch) | |
tree | 635f4fcb406807c320f0e09662d7304b89de5076 /src | |
parent | cgroup-util: before operating on a mounted cgroup controller check if it actu... (diff) | |
download | systemd-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.c | 14 |
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; } } |