]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
cgroup2: use new fstype for unified hierarchy
authorAlban Crequy <alban@kinvolk.io>
Mon, 7 Dec 2015 00:10:50 +0000 (01:10 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 26 Mar 2016 16:05:29 +0000 (12:05 -0400)
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.

https://github.com/torvalds/linux/commit/67e9c74b8a873408c27ac9a8e4c1d1c8d72c93ff

src/basic/cgroup-util.c
src/basic/missing.h
src/core/mount-setup.c
src/nspawn/nspawn-cgroup.c
src/nspawn/nspawn-mount.c

index 56c1fcaab9b23a337da0f4f36ed0ec01c0a418ab..5124b5bf93ad65f1d5174a97384bb33ea41e48ad 100644 (file)
@@ -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;
index 034e334e66264d57567cd7c5ac8cc0b8b682a2a9..66cd5921adf0de622ce8fb93236c5701f01890ad 100644 (file)
@@ -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
index de1a361cc4c554dc290c5078fb4c07e8f641279a..32fe51c67ea349026790d2ae9be7f9cd0488aaff 100644 (file)
@@ -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 },
index 9f9a4759d1caaf0813fde3b18debae3b845dd7e8..53a7ee7134273e99d03727fa1c54c545cb8d3ffe 100644 (file)
@@ -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;
index 70cca1527876850731528adc74b6a85e8a45ffca..64cb6b3ce3064bbb9ea3ea9918621057c038327b 100644 (file)
@@ -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;