linux/tools/testing/selftests
Linus Torvalds 4235cb24ec vfs-7.2-rc5.fixes
Please consider pulling these changes from the signed vfs-7.2-rc5.fixes tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCamYljAAKCRCRxhvAZXjc
 ogWyAPwORZDIIsRiAQbnPs+OkYszuWCY29OeUrTf+m3z+tBTLwD+NUFtpH5XIcYJ
 3jHtGXPoHjEaOVsNyIdxwnOxWfo+6ws=
 =VNq0
 -----END PGP SIGNATURE-----

Merge tag 'vfs-7.2-rc5.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs fixes from Christian Brauner:

 - vfs: Preserve the ACL_DONT_CACHE state in forget_cached_acl().

   ACL_DONT_CACHE is meant to be a permanent opt-out from ACL caching
   which FUSE relies on for servers that don't negotiate FUSE_POSIX_ACL.
   The helper replaced it with ACL_NOT_CACHED, silently re-enabling the
   cache, and as fuse doesn't invalidate the cache for such servers a
   properly timed get_acl() returned stale ACLs. Comes with a fuse
   selftest reproducing this.

 - pidfs:

     - Preserve PIDFD_THREAD when a thread pidfd is reopened via
       open_by_handle_at(). PIDFD_THREAD shares the O_EXCL bit which
       do_dentry_open() strips after the flags have been validated, so
       the reopened pidfd silently became a process pidfd. Comes with a
       selftest.

     - Add a pidfs_dentry_open() helper so the regular pidfd allocation
       path and the file handle path share the code that forces O_RDWR
       and reapplies the pidfd flags that do_dentry_open() strips.

     - Handle FS_IOC32_GETVERSION in the compat ioctl path.

     - Make pidfs_ino_lock static.

 - iomap:

     - Fix the block range calculation in ifs_clear_range_dirty() so a
       partial clear doesn't drop the dirty state of blocks the range
       only partially covers.

     - Support invalidating partial folios so a partial truncate or hole
       punch with blocksize < foliosize doesn't leave stale dirty bits
       behind.

     - Only set did_zero when iomap_zero_iter() actually zeroed
       something.

     - Guard ifs_set_range_dirty() and ifs_set_range_uptodate() against
       zero-length ranges where the unsigned last-block calculation
       underflows and bitmap_set() writes far beyond the ifs->state
       allocation.

     - Don't merge ioends with different io_private values as the merge
       could leak or corrupt the private data of the individual ioends.

 - exec:

     - Raise bprm->have_execfd only once the binfmt_misc interpreter has
       actually been opened. The flag was set as soon as a matching 'O'
       or 'C' entry was found. If the interpreter open failed with
       ENOEXEC the exec fell through to the next binary format with
       have_execfd raised but no executable staged and begin_new_exec()
       NULL derefed past the point of no return.

     - Fix an unsigned loop counter wrap in transfer_args_to_stack() on
       nommu. An overlong argument or environment string pushes bprm->p
       below PAGE_SIZE, the stop index becomes zero, and the loop never
       terminates, wrapping its counter and copying garbage from in
       front of the page array into the new process stack.

     - Make binfmt_elf_fdpic only honour the first PT_INTERP like
       binfmt_elf does. Each additional PT_INTERP overwrote the previous
       interpreter, leaking the name allocation and the interpreter file
       reference together with the write denial open_exec() took,
       leaving the file unwritable for as long as the system runs.

 - overlayfs:

     - Compare the full escaped xattr prefix including the trailing dot.
       An xattr like "trusted.overlay.overlayfoo" was misclassified as
       an escaped overlay xattr.

     - Check read access to the copy_file_range() source with the
       source's mounter credentials.

 - super: Thawing a filesystem whose block device was frozen with
   bdev_freeze() deadlocked. Dropping the last block layer freeze
   reference from under s_umount ends up in fs_bdev_thaw() which
   reacquires s_umount on the same task. Pin the superblock with an
   active reference instead and call bdev_thaw() without holding
   s_umount.

 - procfs: Return EACCES instead of success when the ptrace access check
   for namespace links fails.

 - afs: Use afs_dir_get_block() rather than afs_dir_find_block() for
   block 0 in afs_edit_dir_remove(), matching afs_edit_dir_add().

 - Push the memcg gating of ->nr_cached_objects() down into the btrfs
   and shmem callbacks instead of skipping every callback during
   non-root memcg reclaim. The blanket check short-circuited XFS whose
   inode reclaim hook is intentionally driven from per-memcg contexts to
   free memcg-charged slab.

 - eventpoll: Pin files while checking reverse paths.

   Since struct file became SLAB_TYPESAFE_BY_RCU a concurrent close
   could free and recycle the file under the check which then took and
   dropped the f_lock of whatever live file now occupies that slot.

* tag 'vfs-7.2-rc5.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (24 commits)
  super: fix emergency thaw deadlock on frozen block devices
  pidfs: make pidfs_ino_lock static
  eventpoll: pin files while checking reverse paths
  fs: push nr_cached_objects memcg gating into individual filesystems
  afs: Fix afs_edit_dir_remove() to get, not find, block 0
  iomap: prevent ioend merge when io_private differs
  iomap: add comments for ifs_clear/set_range_dirty()
  iomap: fix out-of-bounds bitmap_set() with zero-length range
  iomap: fix incorrect did_zero setting in iomap_zero_iter()
  iomap: support invalidating partial folios
  iomap: correct the range of a partial dirty clear
  fs/super: fix emergency thaw double-unlock of s_umount
  pidfs: handle FS_IOC32_GETVERSION in compat ioctl
  ovl: check access to copy_file_range source with src mounter creds
  proc: Fix broken error paths for namespace links
  pidfs: add pidfs_dentry_open() helper
  selftests/pidfd: check PIDFD_THREAD survives open_by_handle_at()
  pidfs: preserve thread pidfds reopened by file handle
  ovl: fix trusted xattr escape prefix matching
  selftests/fuse: add ACL_DONT_CACHE regression test
  ...
2026-07-26 12:22:57 -07:00
..
acct selftests/acct: add taskstats TGID retention test 2026-05-28 21:24:41 -07:00
alsa selftests/alsa: Fix format specifier and function mismatch in mixer-test 2026-07-06 10:24:05 +02:00
amd-pstate
arm64 selftests/arm64: fix spelling errors in comments 2026-07-02 11:44:43 +01:00
bpf BPF fixes: 2026-07-24 19:31:12 -07:00
breakpoints selftests: fix ARCH normalization to handle command-line argument 2026-03-27 21:19:44 -07:00
cachestat
capabilities
cgroup mm.git review status for mm-hotfixes-stable..mm-stable 2026-06-19 10:14:34 -07:00
clone3 selftests/clone3: remove unused variables 2026-05-27 14:11:41 +02:00
connector
core
coredump selftests: check pidfd_info->coredump_code correctness 2026-03-23 16:29:15 +01:00
cpu-hotplug selftests/cpu-hotplug: Fix check for cpu hotplug not supported 2026-03-31 16:07:19 -06:00
cpufreq
damon selftests/damon/sysfs.sh: test pause file existence 2026-06-04 14:45:02 -07:00
devices
dm-verity
dmabuf-heaps
drivers Char/Misc driver fixes for 7.2-rc5 2026-07-26 10:47:58 -07:00
dt
efivarfs
exec
fchmodat2 selftests/fchmodat2: use ksft_finished() 2026-03-27 21:19:37 -07:00
filelock kselftest/filelock: add a .gitignore file 2026-05-28 21:24:44 -07:00
filesystems selftests/fuse: add ACL_DONT_CACHE regression test 2026-07-21 22:04:02 +02:00
firmware
fpu
ftrace selftests/ftrace: Reset triggers at top level before instance loop 2026-07-24 13:43:18 -04:00
futex selftests: futex: Add tests for robust release operations 2026-06-03 11:38:53 +02:00
gpio selftests: gpio: add gpio-cdev-uaf to .gitignore 2026-07-08 09:45:43 +02:00
hid selftests/hid: multitouch: test a large ContactCountMaximum 2026-07-01 20:36:12 +02:00
ia64
intel_pstate
iommu iommufd/selftest: Add invalidation entry_num and entry_len boundary tests 2026-06-12 10:44:44 -03:00
ipc selftests: fix ARCH normalization to handle command-line argument 2026-03-27 21:19:44 -07:00
ir
kcmp
kexec
kho selftests: kho: test with deferred struct page init 2026-06-01 02:31:37 +03:00
kmod
kselftest selftests: Fix duplicated test number reporting 2026-04-17 11:29:03 -06:00
kselftest_harness selftests: harness: Validate intermixing of kselftest and harness functionality 2026-03-31 13:48:34 -06:00
kvm KVM: selftests: sev_init2_tests: Derive SEV availability from KVM 2026-07-21 12:25:27 +02:00
landlock selftests/landlock: Skip scoped_signal subtest with MSG_OOB if not available 2026-07-10 12:59:11 +02:00
lib
livepatch selftests/livepatch: fix resource leak in test_klp_syscall init error path 2026-06-09 12:38:33 +02:00
liveupdate selftests/liveupdate: Add stress-files kexec test 2026-06-03 21:15:46 +03:00
lkdtm lkdtm/powerpc: add PPC_RADIX_TLBIEL test for radix MCE validation 2026-05-21 03:21:01 -07:00
locking
lsm
media_tests
membarrier selftests/membarrier: Add rseq stress test for CFS throttle interactions 2026-05-05 12:50:48 +02:00
memfd selftests/memfd: remove unused variable 'sig' in fuse_test 2026-06-04 14:45:06 -07:00
memory-hotplug
mincore
mm selftests/mm: hmm-tests: include linux/mman.h to access MADV_COLLAPSE 2026-07-01 19:02:54 -07:00
module
mount
mount_setattr selftests/mount_setattr: increase tmpfs size for idmapped mount tests 2026-03-17 16:59:45 +01:00
move_mount_set_group
mqueue selftests/mqueue: Fix incorrectly named file 2026-03-31 15:01:51 -06:00
mseal_system_mappings
namespaces selftests/namespaces: Skip efault tests when listns() is not available 2026-05-11 12:25:32 +02:00
nci
net selftests: mptcp: userspace_pm: fix undefined variable port 2026-07-23 10:50:38 -07:00
nolibc selftests/nolibc: test against -Wwrite-strings 2026-05-26 21:06:26 +02:00
ntb
pci_endpoint selftests: pci_endpoint: Skip BAR subrange test on -ENOSPC 2026-04-08 14:41:39 -05:00
pcie_bwctrl
perf_events selftests/perf_events: fix mmap() error check in sigtrap_threads 2026-05-28 21:24:49 -07:00
pid_namespace selftests/pid_namespace: compute pid_max test limits dynamically 2026-05-11 11:09:30 +02:00
pidfd selftests/pidfd: check PIDFD_THREAD survives open_by_handle_at() 2026-07-22 13:55:20 +02:00
pipe selftests/pipe: add pipe_bench microbenchmark 2026-05-28 14:33:25 +02:00
power_supply
powerpc selftests/powerpc: Suppress -Wmaybe-uninitialized with GCC 15 2026-04-01 09:21:04 +05:30
prctl selftests: fix ARCH normalization to handle command-line argument 2026-03-27 21:19:44 -07:00
proc selftests/proc: add /proc/pid/smaps tearing tests 2026-06-04 14:45:06 -07:00
pstore
ptp selftests: ptp: treat unsupported PHC operations as skip 2026-01-27 17:57:28 -08:00
ptrace
rcutorture torture: Allow "norm" abbreviation for "normal" 2026-05-24 09:38:59 +02:00
rdma Linux 7.1-rc5 2026-05-25 13:48:00 -03:00
resctrl selftests/resctrl: Reduce L2 impact on CAT test 2026-05-04 18:40:02 -06:00
ring-buffer
riscv selftests/riscv: ptrace: Fix memory leak of regset_data in vector tests 2026-07-10 09:32:35 -06:00
rlimits
rseq selftests/rseq: Fix a building error for riscv arch 2026-07-08 10:59:14 -06:00
rtc
rust
safesetid
sched
sched_ext selftests/sched_ext: Verify nohz_full tick behavior 2026-07-08 08:29:43 -10:00
seccomp selftests/seccomp: Add hard-coded __NR_uprobe for x86_64 2026-04-03 08:41:38 -07:00
sgx
signal
size
sparc64 selftests: fix ARCH normalization to handle command-line argument 2026-03-27 21:19:44 -07:00
splice
static_keys
sync
syscall_user_dispatch
sysctl
tc-testing selftests/tc-testing: Add DualPI2 GSO backlog accounting test 2026-06-21 15:16:03 -07:00
tdx
thermal/intel selftests: fix ARCH normalization to handle command-line argument 2026-03-27 21:19:44 -07:00
timens
timers selftests/posix_timers: Use CLOCK_THREAD_CPUTIME_ID for ITIMER_PROF measurements 2026-05-06 08:33:08 +02:00
tmpfs
tpm2
tty
turbostat
ublk selftests: ublk: cap nthreads to kernel's actual nr_hw_queues 2026-05-13 07:55:39 -06:00
uevent selftests/uevent: increase __UEVENT_BUFFER_SIZE to avoid ENOBUFS on busy systems 2026-06-17 15:37:46 -07:00
user_events selftests/user_events: Wait for deferred event teardown after unregister 2026-07-08 09:33:22 -04:00
vDSO selftests: vDSO: vdso_test_correctness: Add a test for time() 2026-03-11 15:23:24 +01:00
verification
vfio vfio: selftests: Add luuid to libvfio.mk's list of libraries, not to the Makefile 2026-06-30 15:50:55 -06:00
vsock selftests/vsock: skip vng setsid workaround on >= 1.41 2026-06-15 12:52:01 -07:00
watchdog
wireguard
x86 selftests/x86: Add shadow stack uprobe CALL test 2026-07-02 13:21:49 +02:00
zram
.gitignore
gen_kselftest_tar.sh
kselftest_deps.sh
kselftest_harness.h selftests: harness: fix pidfd leak in __wait_for_test 2026-05-21 13:44:15 +02:00
kselftest_install.sh
kselftest_module.h
kselftest.h linux_kselftest-next-7.2-rc1 2026-06-16 16:49:07 +05:30
lib.mk
Makefile vfs-7.2-rc1.misc 2026-06-15 03:59:45 +05:30
run_kselftest.sh selftests/run_kselftest.sh: Allow choosing per-test log directory 2026-04-13 11:05:39 -06:00