Coreutils commit d435cfc0bc55 ("touch: fix wrong diagnostic (Bug#48106)"), released in coreutils v9.0, changed the error reported by the tool when openat() fails with EINVAL. Instead of reporting a generic message for the failure of either openat() or the following utimensat(), it now differentiates both failures with different messages. This change breaks generic/556, which relied on the parsing of that message. This test was originally developed by me on a Debian Buster (coreutils v8.x), so I used the generic error message. Now that I tried to run it on a more modern distro, it reports a different error message, which fails the test. We could do it in a more flexible way to catch future changes. These are unlikely, and many other parts of fstests just use this generic touch message, so don't bother with it here. There is no change in behavior on the kernel side, just a broken test. On both older and new distros, the kernel correctly rejects this invalid sequence with -EINVAL, as shown in the strace hunk below: ... openat(AT_FDCWD, "/scratch_mnt/strict/corac\314\247\303", ...) = -1 EINVAL utimensat(AT_FDCWD, "/scratch_mnt/strict/corac\314\247\303", ...) = -1 EINVAL ... Signed-off-by: Gabriel Krisman Bertazi <krisman@xxxxxxxxxxxxx> --- tests/generic/556.out | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/generic/556.out b/tests/generic/556.out index f9dd9542fb12..12c77a5b0176 100644 --- a/tests/generic/556.out +++ b/tests/generic/556.out @@ -12,5 +12,5 @@ user.foo="bar" # file: SCRATCH_MNT/xattrs/x/f1 user.foo="bar" -touch: setting times of 'SCRATCH_MNT/strict/corac'$'\314\247\303': Invalid argument -touch: setting times of 'SCRATCH_MNT/strict/cora'$'\303\247\303': Invalid argument +touch: cannot touch 'SCRATCH_MNT/strict/corac'$'\314\247\303': Invalid argument +touch: cannot touch 'SCRATCH_MNT/strict/cora'$'\303\247\303': Invalid argument -- 2.36.1