From 046a81a8c1953e11d408b4f8f1b88043c443f4dac49fcb97d4c29e70c01ed740 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Mon, 18 Jul 2016 08:24:21 +0000 Subject: [PATCH] Accepting request 411397 from home:cyphar:branches:Base:System Backports a patch from v230 to allow for systemd.unified_cgroup_hierarchy to be supported on 4.4 and later kernels. boo#989276 OBS-URL: https://build.opensuse.org/request/show/411397 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=941 --- ...use-new-fstype-for-unified-hierarchy.patch | 87 +++++++++++++++++++ systemd.changes | 6 ++ systemd.spec | 13 +-- 3 files changed, 101 insertions(+), 5 deletions(-) create mode 100644 systemd-230-cgroup2-use-new-fstype-for-unified-hierarchy.patch diff --git a/systemd-230-cgroup2-use-new-fstype-for-unified-hierarchy.patch b/systemd-230-cgroup2-use-new-fstype-for-unified-hierarchy.patch new file mode 100644 index 00000000..53faee2a --- /dev/null +++ b/systemd-230-cgroup2-use-new-fstype-for-unified-hierarchy.patch @@ -0,0 +1,87 @@ +commit 099619957a0d9ae0e6e5e221493e40fb8fc2cd81 +Author: Alban Crequy +Date: Mon Dec 7 01:10:50 2015 +0100 + + 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. + + https://github.com/torvalds/linux/commit/67e9c74b8a873408c27ac9a8e4c1d1c8d72c93ff + + Upstream-patch: 099619957a0d9ae0e6e5e221493e40fb8fc2cd81 + +diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c +index 56c1fcaab9b2..5124b5bf93ad 100644 +--- a/src/basic/cgroup-util.c ++++ b/src/basic/cgroup-util.c +@@ -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; +diff --git a/src/basic/missing.h b/src/basic/missing.h +index 034e334e6626..66cd5921adf0 100644 +--- a/src/basic/missing.h ++++ b/src/basic/missing.h +@@ -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 +diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c +index de1a361cc4c5..32fe51c67ea3 100644 +--- a/src/core/mount-setup.c ++++ b/src/core/mount-setup.c +@@ -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 }, +diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c +index 9f9a4759d1ca..53a7ee713427 100644 +--- a/src/nspawn/nspawn-cgroup.c ++++ b/src/nspawn/nspawn-cgroup.c +@@ -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; +diff --git a/src/nspawn/nspawn-mount.c b/src/nspawn/nspawn-mount.c +index 70cca1527876..64cb6b3ce306 100644 +--- a/src/nspawn/nspawn-mount.c ++++ b/src/nspawn/nspawn-mount.c +@@ -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; diff --git a/systemd.changes b/systemd.changes index 0b789caf..74f22fb3 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Jul 17 03:41:05 UTC 2016 - asarai@suse.com + +- Backport unified_cgroup_hierarchy fix for Linux >= 4.4. boo#989276 + + systemd-230-cgroup2-use-new-fstype-for-unified-hierarchy.patch + ------------------------------------------------------------------- Sat Jun 18 16:17:36 UTC 2016 - arvidjaar@gmail.com diff --git a/systemd.spec b/systemd.spec index bb4e8865..ce853c2f 100644 --- a/systemd.spec +++ b/systemd.spec @@ -256,6 +256,8 @@ Patch527: 0001-core-fix-bus-name-synchronization-after-daemon-reloa.patch Patch528: 0001-core-re-sync-bus-name-list-after-deserializing-durin.patch # PATCH-FIX-UPSTREAM -- fixed after 228 Patch529: 0001-systemctl-pid1-do-not-warn-about-missing-install-inf.patch +# PATCH-FIX-UPSTREAM -- fixed after 320 +Patch530: systemd-230-cgroup2-use-new-fstype-for-unified-hierarchy.patch # UDEV PATCHES # ============ @@ -281,7 +283,7 @@ Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch -# PATCH-FIX-SUSE See bnc#882714 comment #51 +# PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch @@ -466,8 +468,8 @@ Provides: syslog Provides: sysvinit(syslog) Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd -Requires(post): /usr/bin/getent -Requires(post): /usr/bin/setfacl +Requires(post): /usr/bin/getent +Requires(post): /usr/bin/setfacl Requires(post): /usr/bin/systemctl Requires(post): permissions Conflicts: otherproviders(syslog) @@ -602,6 +604,7 @@ cp %{SOURCE7} m4/ %patch527 -p1 %patch528 -p1 %patch529 -p1 +%patch530 -p1 # udev patches %patch1002 -p1 @@ -811,7 +814,7 @@ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/nocl TTYVTDisallocate=no EOF -#ensure we get the running kernel sysctl settings. +#ensure we get the running kernel sysctl settings. cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/current-kernel-sysctl.conf d! /run/sysctl.d @@ -881,7 +884,7 @@ do ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done -# add entries for xkeyboard-config converted keymaps; mappings, +# add entries for xkeyboard-config converted keymaps; mappings, # which already exist in original systemd mapping table are being # ignored though, i.e. not overwritten if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then