]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Merge tag 'vfs-7.3-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 17 Aug 2026 19:56:12 +0000 (12:56 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 17 Aug 2026 19:56:12 +0000 (12:56 -0700)
Pull misc vfs updates from Christian Brauner:
 "Bigger cleanups:

   - The lockref dead-count handling is tidied up.

     The open-coded check for a count below zero as the dead marker
     relies on information the caller should not have.

   - make put_mnt_ns() leave mounts connected. Destroying a mount
     namespace disconnected its mounts from their mount points. So a
     file descriptor still open on the parent of a mount point could be
     used to peek under it.

     Locked mounts were already kept connected to prevent exactly that.
     But a mount is only locked when its tree is copied across a user
     namespace boundary. So a mount namespace set up by a privileged
     component had no locked mounts and its mounts were disconnected.
     Passing UMOUNT_CONNECTED keeps every mount connected and prevents
     that bug.

   - vfs_prepare_mode() passes S_IFDIR for directories. I meant to fix
     that ago but didn't get to it. So now someone finally did it.

     This kills the exception where the mode could be 0 when a directory
     was created whereas every other creation operation passed it
     explicitly already.

   - move long delayed work for ufs, jffs2, hfsplus, hfs and affs from
     the per-cpu system_long_wq to the new unbound system_dfl_long_wq.

     None of that work relies on per-cpu state and the work item is
     enqueued with queue_delayed_work() whose timer is global anyway. So
     it may as well benefit from scheduler task placement.

  Smaller fixes and cleanups:

   - unlock_buffer() and journal_end_buffer_io_sync() use
     clear_and_wake_up_bit()

   - the pipe page pools are unified into a single per-pipe pool and the
     extra wake_up(rd_wait) is limited to EPOLLET consumers

   - eventpoll now computes its timer slack lazily in ep_poll()

   - shrink_dcache_for_umount() keeps making progress on busy roots

   - excess xarray nodes are freed in clear_inode()

   - romfs detects hard link cycles

   - the user path of nested backing files is fixed

   - pidfd holds exec_update_lock around the namespace ioctl

   - non-memcg-aware nr_cached_objects is skipped during memcg slab
     shrink

   - iomap_write_iter() always returns status

   - mangle_path() is renamed to seq_mangle_path()

   - inode timestamp accessors are annotated

   - new regression test for pipe->poll_usage.

   - a few documentation, kernel-doc and selftest fixes"

* tag 'vfs-7.3-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (67 commits)
  selftests/namespaces: Fix racy pipe handshake in timens and pidns_separate
  selftests/epoll: add a regression test for pipe->poll_usage
  pipe: only enable the extra wake_up(rd_wait) for EPOLLET consumers
  pidfd: hold exec_update_lock around namespace ioctl
  fs: fix user path of nested backing files
  fs: remove stale inode_insert5() kernel-doc parameter
  fs: fix switch/case indentation in sysfs() syscall
  fs: document semantics of kstat::{uid,gid} fields
  dcache: keep shrink_dcache_for_umount() making progress on busy roots
  seq_file: rename mangle_path to seq_mangle_path
  nstree: add/fix struct ns_id_req kernel-doc member fields
  dcache: use lockref routines for dead count checks
  lockref: tidy up dead count handling
  initramfs: fix typo in reserve_initrd_mem comment
  fs/pipe: unify the page pools into a single per-pipe pool
  fs: annotate inode timestamp accessors
  eventpoll: compute timer slack lazily in ep_poll()
  selftests/filesystems: add mntns cleanup test
  put_mnt_ns(): leave mounts connected
  affs: Move long delayed work on system_dfl_long_wq
  ...

47 files changed:
1  2 
Documentation/filesystems/porting.rst
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c
fs/affs/namei.c
fs/afs/dir.c
fs/btrfs/inode.c
fs/ceph/dir.c
fs/coda/dir.c
fs/eventpoll.c
fs/ext2/namei.c
fs/ext4/namei.c
fs/f2fs/namei.c
fs/fuse/dir.c
fs/gfs2/inode.c
fs/hfs/dir.c
fs/hfsplus/dir.c
fs/hpfs/namei.c
fs/hugetlbfs/inode.c
fs/iomap/buffered-io.c
fs/jffs2/dir.c
fs/jfs/namei.c
fs/minix/namei.c
fs/namei.c
fs/namespace.c
fs/nfs/dir.c
fs/nilfs2/namei.c
fs/ntfs/namei.c
fs/ntfs3/namei.c
fs/nullfs.c
fs/ocfs2/dlmfs/dlmfs.c
fs/ocfs2/namei.c
fs/omfs/dir.c
fs/orangefs/namei.c
fs/pidfs.c
fs/posix_acl.c
fs/ramfs/inode.c
fs/smb/client/inode.c
fs/super.c
fs/ubifs/dir.c
fs/udf/namei.c
fs/ufs/namei.c
fs/xfs/xfs_buf.c
fs/xfs/xfs_iops.c
fs/xfs/xfs_qm.c
include/linux/fs.h
init/initramfs.c
tools/testing/selftests/Makefile

Simple merge
Simple merge
Simple merge
diff --cc fs/affs/namei.c
Simple merge
diff --cc fs/afs/dir.c
Simple merge
Simple merge
diff --cc fs/ceph/dir.c
Simple merge
diff --cc fs/coda/dir.c
Simple merge
diff --cc fs/eventpoll.c
Simple merge
diff --cc fs/ext2/namei.c
Simple merge
diff --cc fs/ext4/namei.c
Simple merge
diff --cc fs/f2fs/namei.c
Simple merge
diff --cc fs/fuse/dir.c
Simple merge
diff --cc fs/gfs2/inode.c
Simple merge
diff --cc fs/hfs/dir.c
Simple merge
Simple merge
diff --cc fs/hpfs/namei.c
Simple merge
Simple merge
Simple merge
diff --cc fs/jffs2/dir.c
Simple merge
diff --cc fs/jfs/namei.c
Simple merge
Simple merge
diff --cc fs/namei.c
Simple merge
diff --cc fs/namespace.c
Simple merge
diff --cc fs/nfs/dir.c
Simple merge
Simple merge
diff --cc fs/ntfs/namei.c
Simple merge
Simple merge
diff --cc fs/nullfs.c
Simple merge
Simple merge
Simple merge
diff --cc fs/omfs/dir.c
Simple merge
Simple merge
diff --cc fs/pidfs.c
Simple merge
diff --cc fs/posix_acl.c
Simple merge
Simple merge
Simple merge
diff --cc fs/super.c
Simple merge
diff --cc fs/ubifs/dir.c
Simple merge
diff --cc fs/udf/namei.c
Simple merge
diff --cc fs/ufs/namei.c
Simple merge
Simple merge
Simple merge
diff --cc fs/xfs/xfs_qm.c
Simple merge
Simple merge
Simple merge
index 4854a8eda449c704d108c8113334e56688258ee9,023699f05e13df8a14d2c6fc8b4d1b30e4131ec4..8a4b6ddc68dfb0b3dad0d32a73b0d9b9b0d12aea
@@@ -43,7 -42,7 +43,8 @@@ TARGETS += filesystems/fus
  TARGETS += filesystems/move_mount
  TARGETS += filesystems/empty_mntns
  TARGETS += filesystems/fsmount_ns
 +TARGETS += filesystems/fscontext_ns
+ TARGETS += filesystems/mntns_cleanup
  TARGETS += firmware
  TARGETS += fpu
  TARGETS += ftrace