core/mount-setup: if unified hierarchy is not supported, fall back to legacy
We need this to gracefully support older or strangely configured kernels. v2: - do not install a callback handler, just embed the right conditions into cg_is_*_wanted() v3: - fix bug in cg_is_legacy_wanted()
This commit is contained in:
@@ -2429,7 +2429,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) {
|
||||
@@ -2438,11 +2445,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)
|
||||
|
||||
Reference in New Issue
Block a user