cgroup2: use new fstype for unified hierarchy
Since Linux v4.4-rc1, __DEVEL__sane_behavior does not exist anymore and
is replaced by a new fstype "cgroup2".
With this patch, systemd no longer supports the old (unstable) way of
doing unified hierarchy with __DEVEL__sane_behavior and systemd now
requires Linux v4.4 for unified hierarchy.
Non-unified hierarchy is still the default and is unchanged by this
patch.
67e9c74b8a
This commit is contained in:
parent
09541e49eb
commit
099619957a
|
@ -2129,7 +2129,7 @@ int cg_unified(void) {
|
|||
if (statfs("/sys/fs/cgroup/", &fs) < 0)
|
||||
return -errno;
|
||||
|
||||
if (F_TYPE_EQUAL(fs.f_type, CGROUP_SUPER_MAGIC))
|
||||
if (F_TYPE_EQUAL(fs.f_type, CGROUP2_SUPER_MAGIC))
|
||||
unified_cache = true;
|
||||
else if (F_TYPE_EQUAL(fs.f_type, TMPFS_MAGIC))
|
||||
unified_cache = false;
|
||||
|
|
|
@ -437,6 +437,10 @@ struct btrfs_ioctl_quota_ctl_args {
|
|||
#define CGROUP_SUPER_MAGIC 0x27e0eb
|
||||
#endif
|
||||
|
||||
#ifndef CGROUP2_SUPER_MAGIC
|
||||
#define CGROUP2_SUPER_MAGIC 0x63677270
|
||||
#endif
|
||||
|
||||
#ifndef TMPFS_MAGIC
|
||||
#define TMPFS_MAGIC 0x01021994
|
||||
#endif
|
||||
|
|
|
@ -94,7 +94,7 @@ static const MountPoint mount_table[] = {
|
|||
#endif
|
||||
{ "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME,
|
||||
NULL, MNT_FATAL|MNT_IN_CONTAINER },
|
||||
{ "cgroup", "/sys/fs/cgroup", "cgroup", "__DEVEL__sane_behavior", MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
||||
{ "cgroup", "/sys/fs/cgroup", "cgroup2", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV,
|
||||
cg_is_unified_wanted, MNT_FATAL|MNT_IN_CONTAINER },
|
||||
{ "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME,
|
||||
cg_is_legacy_wanted, MNT_FATAL|MNT_IN_CONTAINER },
|
||||
|
|
|
@ -94,7 +94,7 @@ int sync_cgroup(pid_t pid, bool unified_requested) {
|
|||
if (unified)
|
||||
r = mount("cgroup", tree, "cgroup", MS_NOSUID|MS_NOEXEC|MS_NODEV, "none,name=systemd,xattr");
|
||||
else
|
||||
r = mount("cgroup", tree, "cgroup", MS_NOSUID|MS_NOEXEC|MS_NODEV, "__DEVEL__sane_behavior");
|
||||
r = mount("cgroup", tree, "cgroup2", MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL);
|
||||
if (r < 0) {
|
||||
r = log_error_errno(errno, "Failed to mount unified hierarchy: %m");
|
||||
goto finish;
|
||||
|
|
|
@ -750,7 +750,7 @@ static int mount_unified_cgroups(const char *dest) {
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (mount("cgroup", p, "cgroup", MS_NOSUID|MS_NOEXEC|MS_NODEV, "__DEVEL__sane_behavior") < 0)
|
||||
if (mount("cgroup", p, "cgroup2", MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL) < 0)
|
||||
return log_error_errno(errno, "Failed to mount unified cgroup hierarchy to %s: %m", p);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue