chiark / gitweb /
core/mount-setup: if unified hierarchy is not supported, fall back to legacy
[elogind.git] / src / basic / cgroup-util.c
index ad412235347b6376dc9336c31e6505236a460dc4..0079ff9a49d1f936ac94674c7202d7a6df8601ba 100644 (file)
@@ -2495,7 +2495,14 @@ bool cg_is_unified_wanted(void) {
 }
 
 bool cg_is_legacy_wanted(void) {
-        return !cg_is_unified_wanted();
+        /* Check if we have cgroups2 already mounted. */
+        if (cg_unified_flush() >= 0 &&
+            unified_cache == CGROUP_UNIFIED_ALL)
+                return false;
+
+        /* Otherwise, assume that at least partial legacy is wanted,
+         * since cgroups2 should already be mounted at this point. */
+        return true;
 }
 
 bool cg_is_hybrid_wanted(void) {
@@ -2504,11 +2511,6 @@ bool cg_is_hybrid_wanted(void) {
         bool b;
         const bool is_default = DEFAULT_HIERARCHY == CGROUP_UNIFIED_SYSTEMD;
 
-        /* If the unified hierarchy is requested in full, no need to
-         * bother with this. */
-        if (cg_is_unified_wanted())
-                return 0;
-
         /* If the hierarchy is already mounted, then follow whatever
          * was chosen for it. */
         if (cg_unified_flush() >= 0)