Hey Linus, /* Summary */ Features: - Support caching symlink lengths in inodes. The size is stored in a new union utilizing the same space as i_devices, thus avoiding growing the struct or taking up any more space. When utilized it dodges strlen() in vfs_readlink(), giving about 1.5% speed up when issuing readlink on /initrd.img on ext4. - Add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag. If a file system supports uncached buffered IO, it may set FOP_DONTCACHE and enable support for RWF_DONTCACHE. If RWF_DONTCACHE is attempted without the file system supporting it, it'll get errored with -EOPNOTSUPP. - Enable VBOXGUEST and VBOXSF_FS on ARM64 Now that VirtualBox is able to run as a host on arm64 (e.g. the Apple M3 processors) we can enable VBOXSF_FS (and in turn VBOXGUEST) for this architecture. Tested with various runs of bonnie++ and dbench on an Apple MacBook Pro with the latest Virtualbox 7.1.4 r165100 installed. Cleanups: - Delay sysctl_nr_open check in expand_files(). - Use kernel-doc includes in fiemap docbook. - Use page->private instead of page->index in watch_queue. - Use a consume fence in mnt_idmap() as it's heavily used in link_path_walk(). - Replace magic number 7 with ARRAY_SIZE() in fc_log. - Sort out a stale comment about races between fd alloc and dup2(). - Fix return type of do_mount() from long to int. - Various cosmetic cleanups for the lockref code. Fixes: - Annotate spinning as unlikely() in __read_seqcount_begin. The annotation already used to be there, but got lost in 52ac39e5db5148f7 ("seqlock: seqcount_t: Implement all read APIs as statement expressions"). - Fix proc_handler for sysctl_nr_open. - Flush delayed work in delayed fput(). - Fix grammar and spelling in propagate_umount(). - Fix ESP not readable during coredump. In /proc/PID/stat, there is the kstkesp field which is the stack pointer of a thread. While the thread is active, this field reads zero. But during a coredump, it should have a valid value. However, at the moment, kstkesp is zero even during coredump. - Don't wake up the writer if the pipe is still full. - Fix unbalanced user_access_end() in select code. /* Testing */ gcc version 14.2.0 (Debian 14.2.0-6) Debian clang version 16.0.6 (27+b1) No build failures or warnings were observed. /* Conflicts */ Merge conflicts with mainline ============================= No known conflicts. Merge conflicts with other trees ================================ No known conflicts. The following changes since commit 40384c840ea1944d7c5a392e8975ed088ecf0b37: Linux 6.13-rc1 (2024-12-01 14:28:56 -0800) are available in the Git repository at: git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.14-rc1.misc for you to fetch changes up to c859df526b203497227b2b16c9bebcede67221e4: Merge patch series "lockref cleanups" (2025-01-16 11:48:12 +0100) Please consider pulling these changes from the signed vfs-6.14-rc1.misc tag. Thanks! Christian ---------------------------------------------------------------- vfs-6.14-rc1.misc ---------------------------------------------------------------- Christian Brauner (4): Merge patch series "symlink length caching" Merge branch 'vfs-6.14.uncached_buffered_io' Merge patch series "fix reading ESP during coredump" Merge patch series "lockref cleanups" Christian Kujau (1): vbox: Enable VBOXGUEST and VBOXSF_FS on ARM64 Christoph Hellwig (8): lockref: remove lockref_put_not_zero lockref: improve the lockref_get_not_zero description lockref: use bool for false/true returns lockref: drop superfluous externs lockref: add a lockref_init helper dcache: use lockref_init for d_lockref erofs: use lockref_init for pcl->lockref gfs2: use lockref_init for qd_lockref Christophe Leroy (1): select: Fix unbalanced user_access_end() Guo Weikang (1): fs: fc_log replace magic number 7 with ARRAY_SIZE() Jens Axboe (1): fs: add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag Jinliang Zheng (1): fs: fix proc_handler for sysctl_nr_open Mateusz Guzik (7): fs: delay sysctl_nr_open check in expand_files() vfs: support caching symlink lengths in inodes seqlock: annotate spinning as unlikely() in __read_seqcount_begin ext4: use inode_set_cached_link() tmpfs: use inode_set_cached_link() fs: use a consume fence in mnt_idmap() fs: sort out a stale comment about races between fd alloc and dup2 Matthew Wilcox (Oracle) (1): watch_queue: Use page->private instead of page->index Nam Cao (2): fs/proc: do_task_stat: Fix ESP not readable during coredump selftests: coredump: Add stackdump test Oleg Nesterov (1): pipe_read: don't wake up the writer if the pipe is still full Randy Dunlap (1): fiemap: use kernel-doc includes in fiemap docbook Sentaro Onizuka (1): fs: Fix return type of do_mount() from long to int Zhu Jun (1): fs: Fix grammar and spelling in propagate_umount() shao mingyin (1): file: flush delayed work in delayed fput() Documentation/filesystems/fiemap.rst | 49 +++---- drivers/virt/vboxguest/Kconfig | 2 +- fs/dcache.c | 3 +- fs/erofs/zdata.c | 3 +- fs/ext4/inode.c | 3 +- fs/ext4/namei.c | 4 +- fs/file.c | 22 +--- fs/file_table.c | 7 +- fs/fs_context.c | 2 +- fs/gfs2/quota.c | 3 +- fs/namei.c | 34 ++--- fs/namespace.c | 2 +- fs/pipe.c | 19 +-- fs/pnode.c | 8 +- fs/proc/array.c | 2 +- fs/proc/namespaces.c | 2 +- fs/select.c | 4 +- fs/vboxsf/Kconfig | 2 +- include/linux/fiemap.h | 16 ++- include/linux/fs.h | 29 ++++- include/linux/lockref.h | 26 ++-- include/linux/mount.h | 4 +- include/linux/seqlock.h | 2 +- include/uapi/linux/fiemap.h | 47 +++++-- include/uapi/linux/fs.h | 6 +- kernel/watch_queue.c | 4 +- lib/lockref.c | 60 +++------ mm/shmem.c | 6 +- security/apparmor/apparmorfs.c | 2 +- tools/testing/selftests/coredump/Makefile | 7 + tools/testing/selftests/coredump/README.rst | 50 +++++++ tools/testing/selftests/coredump/stackdump | 14 ++ tools/testing/selftests/coredump/stackdump_test.c | 151 ++++++++++++++++++++++ 33 files changed, 415 insertions(+), 180 deletions(-) create mode 100644 tools/testing/selftests/coredump/Makefile create mode 100644 tools/testing/selftests/coredump/README.rst create mode 100755 tools/testing/selftests/coredump/stackdump create mode 100644 tools/testing/selftests/coredump/stackdump_test.c