984f77
From 434b4b64d17e16ed23f90c99c26dbd0e4ce6cd88 Mon Sep 17 00:00:00 2001
984f77
From: Lennart Poettering <lennart@poettering.net>
984f77
Date: Wed, 24 Nov 2021 15:58:50 +0100
984f77
Subject: [PATCH] test: make test-execute pass on Linux 5.15
984f77
984f77
Linux 5.15 broke kernel API:
984f77
984f77
https://github.com/torvalds/linux/commit/e70344c05995a190a56bbd1a23dc2218bcc8c924
984f77
984f77
Previously setting IOPRIO_CLASS_NONE for a process would then report
984f77
IOPRIO_CLASS_NONE back. But since 5.15 it reports IOPRIO_CLASS_BE
984f77
instead. Since IOPRIO_CLASS_NONE is an alias for a special setting of
984f77
IOPRIO_CLASS_BE this makes some sense, but it's also a kernel API
984f77
breakage that our testsuite trips up on.
984f77
984f77
(I made some minimal effort to inform the kernel people about this API
984f77
breakage during the 5.15 rc phase, but noone was interested.)
984f77
984f77
Either way let's hadle this gracefully in our test suite and accept
984f77
"best-effort" too when "none" was set.
984f77
984f77
(This is only triggable if the tests are run on 5.15 with full privs)
984f77
984f77
(cherry picked from commit d9b8771108cf2955efc3852b477391017d2c599a)
984f77
984f77
Related: #2087152
984f77
---
984f77
 test/test-execute/exec-ioschedulingclass-none.service | 3 ++-
984f77
 1 file changed, 2 insertions(+), 1 deletion(-)
984f77
984f77
diff --git a/test/test-execute/exec-ioschedulingclass-none.service b/test/test-execute/exec-ioschedulingclass-none.service
984f77
index b6af122a1e..8f917d345d 100644
984f77
--- a/test/test-execute/exec-ioschedulingclass-none.service
984f77
+++ b/test/test-execute/exec-ioschedulingclass-none.service
984f77
@@ -2,6 +2,7 @@
984f77
 Description=Test for IOSchedulingClass=none
984f77
 
984f77
 [Service]
984f77
-ExecStart=/bin/sh -x -c 'c=$$(LC_ALL=C ionice); test "$${c%%:*}" = "none"'
984f77
+# Old kernels might report "none" here, new kernels "best-effort".
984f77
+ExecStart=/bin/sh -x -c 'c=$$(LC_ALL=C ionice); test "$${c%%:*}" = "none" -o "$${c%%:*}" = "best-effort"'
984f77
 Type=oneshot
984f77
 IOSchedulingClass=none