[PATCH] fstests: vfstest: skip rejected tmpfile creation
Qu Wenruo <[email protected]> Fri, 17 Jul 2026 16:37:17 +0930
| Newsgroups | org.kernel.vger.fstests,org.kernel.vger.linux-btrfs |
|---|---|
| Message-ID | <[email protected]> |
Since kernel commit 539dce114465 ("fs: refuse O_TMPFILE creation with an
unmapped fsuid or fsgid"), tmpfile creation can be rejected with
EOVERFLOW, so also skip that error number to avoid false alerts like the
following:
FSTYP -- ext4
PLATFORM -- Linux/x86_64 btrfs-vm 7.2.0-rc3-custom+ #411 SMP PREEMPT_DYNAMIC Fri Jul 17 16:24:34 ACST 2026
MKFS_OPTIONS -- -F /dev/mapper/test-scratch1
MOUNT_OPTIONS -- -o acl,user_xattr /dev/mapper/test-scratch1 /mnt/scratch
generic/633 1s ... - output mismatch (see /home/adam/xfstests/results//generic/633.out.bad)
--- tests/generic/633.out 2022-05-11 11:25:30.816666664 +0930
+++ /home/adam/xfstests/results//generic/633.out.bad 2026-07-17 16:25:45.033967541 +0930
@@ -1,2 +1,4 @@
QA output created by 633
Silence is golden
+utils.c: 948: openat_tmpfile_supported - Value too large for defined data type - failure: create
+utils.c: 948: openat_tmpfile_supported - Value too large for defined data type - failure: create
...
(Run 'diff -u /home/adam/xfstests/tests/generic/633.out /home/adam/xfstests/results//generic/633.out.bad' to see the entire diff)
Ran: generic/633
Failures: generic/633
Failed 1 of 1 tests
Signed-off-by: Qu Wenruo <[email protected]>
---
src/vfs/utils.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/vfs/utils.c b/src/vfs/utils.c
index 0b435afe..d2922cc3 100644
--- a/src/vfs/utils.c
+++ b/src/vfs/utils.c
@@ -941,7 +941,11 @@ bool openat_tmpfile_supported(int dirfd)
fd = openat(dirfd, ".", O_TMPFILE | O_RDWR, S_IXGRP | S_ISGID);
if (fd == -1) {
- if (errno == ENOTSUP) {
+ /*
+ * Kernel commit 539dce114465 ("fs: refuse O_TMPFILE creation
+ * with an unmapped fsuid or fsgid") will reject such operation.
+ */
+ if (errno == ENOTSUP || errno == EOVERFLOW) {
errno = 0; /* Don't report misleading errno. */
return false;
} else {
--
2.51.2