}
p = path_startswith(cgroup, root);
+#if 0 /// With other controllers, elogind might end up in /elogind, and *p is 0
if (p && p > cgroup)
+#else
+ if (p && p[0] && (p > cgroup))
+#endif // 0
*shifted = p - 1;
else
*shifted = cgroup;
if (F_TYPE_EQUAL(fs.f_type, CGROUP2_SUPER_MAGIC))
unified_cache = CGROUP_UNIFIED_ALL;
else if (F_TYPE_EQUAL(fs.f_type, TMPFS_MAGIC)) {
-#else
- /* elogind can not support the unified hierarchy as a controller,
- * so always assume a classical hierarchy.
- * If, and only *if*, someone really wants to substitute systemd-login
- * in an environment managed by systemd with elogind, we might have to
- * add such a support. */
- if (F_TYPE_EQUAL(fs.f_type, TMPFS_MAGIC)) {
-#endif // 0
if (statfs("/sys/fs/cgroup/systemd/", &fs) < 0)
return -errno;
CGROUP_UNIFIED_SYSTEMD : CGROUP_UNIFIED_NONE;
} else
return -ENOMEDIUM;
+#else
+ /* elogind can not support the unified hierarchy as a controller,
+ * so always assume a classical hierarchy.
+ * If, and only *if*, someone really wants to substitute systemd-login
+ * in an environment managed by systemd with elogind, we might have to
+ * add such a support. */
+ unified_cache = CGROUP_UNIFIED_NONE;
+#endif // 0
return 0;
}
bool cg_is_legacy_wanted(void) {
return !cg_is_unified_wanted();
}
-#else
-bool cg_is_legacy_wanted(void) {
- return true;
bool cg_is_unified_systemd_controller_wanted(void) {
static thread_local int wanted = -1;
bool cg_is_legacy_systemd_controller_wanted(void) {
return cg_is_legacy_wanted() && !cg_is_unified_systemd_controller_wanted();
}
+#else
+bool cg_is_legacy_wanted(void) {
+ return true;
+}
#endif // 0
#if 0 /// UNNEEDED by elogind