mirror-linux/fs
Linus Torvalds 2e68039281 tracefs fixes for v7.1:
- Use list_add_tail_rcu() for walking eventfs children
 
   The children link list is protected by SRCU and list walkers can walk the
   list with only using SRCU. Using just list_add_tail() on weakly ordered
   architectures can cause issues. Instead use list_add_tail_rcu().
 
 - Hold eventfs_mutex and SRCU for remount walk events
 
   The trace_apply_options() walks the tracefs_inodes where some are eventfs
   inodes and eventfs_remount() is called which in turn calls
   eventfs_set_attr(). This walk only holds normal RCU read locks, but the
   eventfs_mutex and SRCU should be held. Add a eventfs_remount_(un)lock()
   helpers to take the necessary locks before iterating the list.
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYKADIWIQRRSw7ePDh/lE+zeZMp5XQQmuv6qgUCaekrdRQccm9zdGVkdEBn
 b29kbWlzLm9yZwAKCRAp5XQQmuv6ql43AP9evY7U3aOAfPV9Zz6UEZe37Px4rDf5
 7R8Udq3BxI4c0AEArooS0KILZsWnGYFfgq2KbJM4Wq4j5xHcj9VBp95WvQM=
 =1RCW
 -----END PGP SIGNATURE-----

Merge tag 'tracefs-v7.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace

Pull tracefs fixes from Steven Rostedt:

 - Use list_add_tail_rcu() for walking eventfs children

   The linked list of children is protected by SRCU and list walkers can
   walk the list with only using SRCU. Using just list_add_tail() on
   weakly ordered architectures can cause issues. Instead use
   list_add_tail_rcu().

 - Hold eventfs_mutex and SRCU for remount walk events

   The trace_apply_options() walks the tracefs_inodes where some are
   eventfs inodes and eventfs_remount() is called which in turn calls
   eventfs_set_attr(). This walk only holds normal RCU read locks, but
   the eventfs_mutex and SRCU should be held.

   Add a eventfs_remount_(un)lock() helpers to take the necessary locks
   before iterating the list.

* tag 'tracefs-v7.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  eventfs: Hold eventfs_mutex and SRCU when remount walks events
  eventfs: Use list_add_tail_rcu() for SRCU-protected children list
2026-04-22 15:09:01 -07:00
..
9p treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
adfs vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
affs Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
afs mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
autofs vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
befs treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
bfs vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
btrfs tracing updates for v7.1: 2026-04-17 09:43:12 -07:00
cachefiles vfs-7.1-rc1.kino 2026-04-13 12:19:01 -07:00
ceph Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
coda coda cleanups and fixes 2026-04-21 14:03:10 -07:00
configfs Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
cramfs treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
crypto fscrypt updates for 7.1 2026-04-13 17:29:12 -07:00
debugfs debugfs: fix placement of EXPORT_SYMBOL_GPL for debugfs_create_str() 2026-04-02 16:15:23 +02:00
devpts Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dlm ipv6: convert CONFIG_IPV6 to built-in only and clean up Kconfigs 2026-03-29 11:21:22 -07:00
ecryptfs eCryptfs changes for 7.1-rc1 2026-04-20 10:54:17 -07:00
efivarfs Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
efs treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
erofs Changes since the last update: 2026-04-21 11:16:04 -07:00
exfat Description for this pull request: 2026-04-13 16:57:31 -07:00
exportfs Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
ext2 \n 2026-04-15 19:22:16 -07:00
ext4 Various clean ups and bug fixes in ext4 for 7.1: 2026-04-17 17:08:31 -07:00
f2fs f2fs-for-7.1-rc1 2026-04-21 14:50:04 -07:00
fat vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
freevxfs treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
fuse fuse update for 7.1 2026-04-15 19:04:21 -07:00
gfs2 gfs2 changes 2026-04-15 19:12:04 -07:00
hfs vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
hfsplus hfs/hfsplus updates for v7.1 2026-04-13 16:50:38 -07:00
hostfs Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
hpfs treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
hugetlbfs mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
iomap fscrypt updates for 7.1 2026-04-13 17:29:12 -07:00
isofs treewide: fix missed i_ino format specifier conversions 2026-03-06 14:31:30 +01:00
jbd2 Various clean ups and bug fixes in ext4 for 7.1: 2026-04-17 17:08:31 -07:00
jffs2 treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
jfs More robust data integrity checking and some fixes. 2026-04-15 19:29:18 -07:00
kernfs Driver core changes for 7.1-rc1 2026-04-13 19:03:11 -07:00
lockd NFSD 7.1 Release Notes 2026-04-20 10:44:02 -07:00
minix vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
netfs mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
nfs Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
nfs_common NFSD: Remove NFSERR_EAGAIN 2026-01-02 13:43:41 -05:00
nfsd NFSD 7.1 Release Notes 2026-04-20 10:44:02 -07:00
nilfs2 mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
nls fs/nls: Fix inconsistency between utf8_to_utf32() and utf32_to_utf8() 2025-12-01 11:58:06 +02:00
notify Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
ntfs Major changes: 2026-04-17 16:35:49 -07:00
ntfs3 Changes for 7.1-rc1 2026-04-20 10:59:47 -07:00
ocfs2 Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
omfs vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
openpromfs
orangefs Orangefs: changes for 7.1 2026-04-17 17:03:43 -07:00
overlayfs Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
proc mm.git review status for linus..mm-nonmm-stable 2026-04-16 20:11:56 -07:00
pstore mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
qnx4 vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
qnx6 vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
quota quota: Fix race of dquot_scan_active() with quota deactivation 2026-03-25 13:15:36 +01:00
ramfs folio_batch: rename pagevec.h to folio_batch.h 2026-04-05 13:53:07 -07:00
resctrl mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
romfs mm.git review status for linus..mm-stable 2026-02-18 20:50:32 -08:00
smb Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
squashfs Squashfs: check metadata block offset is within range 2026-02-24 11:13:27 -08:00
sysfs Driver core fixes for 7.1-rc1 2026-04-19 12:58:08 -07:00
tests fs/tests: exec: Remove bad test vector 2026-03-18 11:41:53 -07:00
tracefs tracefs fixes for v7.1: 2026-04-22 15:09:01 -07:00
ubifs mm.git review status for linus..mm-nonmm-stable 2026-04-16 20:11:56 -07:00
udf \n 2026-04-15 19:22:16 -07:00
ufs vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
unicode Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
vboxsf Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
verity vfs-7.1-rc1.kino 2026-04-13 12:19:01 -07:00
xfs xfs: new code for Linux 7.1 2026-04-13 17:03:48 -07:00
zonefs mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
Kconfig ntfs: add Kconfig and Makefile 2026-02-19 21:51:00 +09:00
Kconfig.binfmt
Makefile ntfs: add Kconfig and Makefile 2026-02-19 21:51:00 +09:00
aio.c aio: Stop using i_private_data and i_private_lock 2026-03-26 15:03:30 +01:00
anon_inodes.c anon_inodes: convert to FD_ADD() 2025-11-28 12:42:31 +01:00
attr.c fs: attr: fix comment formatting and spelling issues 2026-04-07 11:26:11 +02:00
backing-file.c lsm: add backing_file LSM hooks 2026-04-03 16:53:50 -04:00
bad_inode.c fs: refactor ->update_time handling 2026-01-12 14:01:32 +01:00
binfmt_elf.c mm: unexport vm_brk_flags() and eliminate vm_flags parameter 2026-04-05 13:53:39 -07:00
binfmt_elf_fdpic.c vfs-7.1-rc1.kino 2026-04-13 12:19:01 -07:00
binfmt_flat.c
binfmt_misc.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
binfmt_script.c
bpf_fs_kfuncs.c bpf: Remove redundant KF_TRUSTED_ARGS flag from all kfuncs 2026-01-02 12:04:28 -08:00
buffer.c mm.git review status for linus..mm-stable 2026-04-19 08:01:17 -07:00
char_dev.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
compat_binfmt_elf.c
coredump.c vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
d_path.c dcache: permit dynamic_dname()s up to NAME_MAX 2026-04-07 12:32:22 +02:00
dax.c dax changes for 7.1 2026-04-21 14:12:01 -07:00
dcache.c Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
direct-io.c
drop_caches.c
eventfd.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
eventpoll.c vfs-7.1-rc1.kino 2026-04-13 12:19:01 -07:00
exec.c exec: use strnlen() in __set_task_comm 2026-04-01 12:26:07 -07:00
fcntl.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
fhandle.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
file.c vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
file_attr.c vfs-7.0-rc2.fixes 2026-02-25 10:34:23 -08:00
file_table.c lsm/stable-7.1 PR 20260410 2026-04-13 15:17:28 -07:00
filesystems.c sysfs(2): fs_index() argument is _not_ a pathname 2026-01-16 12:52:04 -05:00
fs-writeback.c mm.git review status for linus..mm-stable 2026-04-19 08:01:17 -07:00
fs_context.c vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
fs_dirent.c
fs_parser.c fs: remove fsparam_path / fs_param_is_path 2026-02-19 14:34:26 +01:00
fs_pin.c
fs_struct.c fs: add <linux/init_task.h> for 'init_fs' 2026-01-14 16:50:37 +01:00
fserror.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
fsopen.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
init.c struct filename series 2026-02-09 16:58:28 -08:00
inode.c Fixing livelocks in shrink_dcache_tree() 2026-04-21 07:30:44 -07:00
internal.h lsm/stable-7.1 PR 20260410 2026-04-13 15:17:28 -07:00
ioctl.c
kernel_read_file.c
libfs.c vfs-7.1-rc1.bh.metadata 2026-04-13 12:46:42 -07:00
locks.c NFSD 7.1 Release Notes 2026-04-20 10:44:02 -07:00
mbcache.c vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
mnt_idmapping.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
mount.h fs: add immutable rootfs 2026-01-12 16:52:09 +01:00
mpage.c mm.git review status for linus..mm-stable 2026-04-15 12:59:16 -07:00
namei.c vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
namespace.c mount: always duplicate mount 2026-04-14 09:30:15 +02:00
nsfs.c vfs-7.1-rc1.kino 2026-04-13 12:19:01 -07:00
nullfs.c fs: add immutable rootfs 2026-01-12 16:52:09 +01:00
open.c fs: remove do_sys_truncate 2026-03-23 12:41:58 +01:00
pidfs.c vfs-7.1-rc1.pidfs 2026-04-13 13:27:11 -07:00
pipe.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
pnode.c
pnode.h
posix_acl.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
proc_namespace.c
read_write.c fs: add setlease to generic_ro_fops and read-only filesystem directory operations 2026-01-12 10:55:45 +01:00
readdir.c fs: Replace user_access_{begin/end} by scoped user access 2026-03-24 14:44:02 +01:00
remap_range.c
select.c vfs-7.1-rc1.misc 2026-04-13 14:20:11 -07:00
seq_file.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
signalfd.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
splice.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
stack.c
stat.c statx: switch to CLASS(filename_maybe_null) 2026-01-16 12:52:04 -05:00
statfs.c user_statfs(): switch to CLASS(filename) 2026-01-16 12:52:04 -05:00
super.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sync.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
sysctls.c
timerfd.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
userfaultfd.c userfaultfd: allow registration of ranges below mmap_min_addr 2026-04-18 00:10:56 -07:00
utimes.c do_utimes_path(): switch to CLASS(filename_uflags) 2026-01-16 12:52:03 -05:00
xattr.c xattr: support extended attributes on sockets 2026-03-02 11:06:42 +01:00