From 003ece760231aba0c661e2390dfd11075d72a8da Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Thu, 18 Jan 2018 23:01:12 +0100 Subject: [PATCH] Prep v235.3 : Fix cgroup hierarchy detection code There is no sub-grouping with elogind, so /sys/fs/cgroup/elogind is not needed to be mounted as cgroup fs in legacy mode. Fixes Bug https://bugs.gentoo.org/644834 --- src/basic/cgroup-util.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 7f86c532c..cb60108ef 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -2550,28 +2550,31 @@ static int cg_unified_update(void) { if (F_TYPE_EQUAL(fs.f_type, CGROUP2_SUPER_MAGIC)) unified_cache = CGROUP_UNIFIED_ALL; +#if 0 /// The handling of cgroups is a bit different with elogind else if (F_TYPE_EQUAL(fs.f_type, TMPFS_MAGIC)) { +#else + else if (F_TYPE_EQUAL(fs.f_type, CGROUP_SUPER_MAGIC) + || F_TYPE_EQUAL(fs.f_type, TMPFS_MAGIC)) { +#endif // 0 if (statfs("/sys/fs/cgroup/unified/", &fs) == 0 && F_TYPE_EQUAL(fs.f_type, CGROUP2_SUPER_MAGIC)) { unified_cache = CGROUP_UNIFIED_SYSTEMD; unified_systemd_v232 = false; #if 0 /// elogind uses its own name } else if (statfs("/sys/fs/cgroup/systemd/", &fs) == 0 && - F_TYPE_EQUAL(fs.f_type, CGROUP2_SUPER_MAGIC)) { - unified_cache = CGROUP_UNIFIED_SYSTEMD; - unified_systemd_v232 = true; - } else { - if (statfs("/sys/fs/cgroup/systemd/", &fs) < 0) - return -errno; #else } else if (statfs("/sys/fs/cgroup/elogind/", &fs) == 0 && +#endif // 0 F_TYPE_EQUAL(fs.f_type, CGROUP2_SUPER_MAGIC)) { unified_cache = CGROUP_UNIFIED_SYSTEMD; unified_systemd_v232 = true; } else { -#endif // 0 +#if 0 /// There is no sub-grouping within elogind + if (statfs("/sys/fs/cgroup/systemd/", &fs) < 0) + return -errno; if (!F_TYPE_EQUAL(fs.f_type, CGROUP_SUPER_MAGIC)) return -ENOMEDIUM; +#endif // 0 unified_cache = CGROUP_UNIFIED_NONE; } } else