[GIT PULL 11/18 for v7.3] vfs lookup

From: Christian Brauner

Date: Fri Aug 14 2026 - 09:14:32 EST


Hey Linus,

/* Summary */

This refactors lookup_open() and adds vfs_lookup_open() for nfsd.
mnt_want_write() and parent locking are moved into lookup_open()
itself.

audit_inode_child() is also now called in lookup_open() on failure. That
is the calling convention in vfs_create() and vfs_mkdir(), but
lookup_open() made no such call when atomic_open() should have created a
file and did not. And neither did the regular ->create() path fwiw.

This also contains work to remove the unneded excl argument from the
->create() inode op.

/* Testing */

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 dc59e4fea9d83f03bad6bddf3fa2e52491777482:

Linux 7.2-rc1 (2026-06-28 12:01:31 -0700)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.lookup

for you to fetch changes up to 895741772f6ca989da565bcbe4673f12d3d0ac31:

Merge patch series "fs/namei.c: comment and coding style fixups" (2026-07-31 10:37:40 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.lookup

Please consider pulling these changes from the signed vfs-7.3-rc1.lookup tag.

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (6):
Merge patch series "VFS: refactor lookup_open and add vfs_lookup()"
Merge patch series "vfs: call audit_inode_child() in lookup_open() on failure"
fs/namei.c: update stale comments in lookup_open()
fs/namei.c: fix kerneldoc of atomic_open() and vfs_lookup_open()
fs/namei.c: fix coding style in atomic_open() and lookup_open()
Merge patch series "fs/namei.c: comment and coding style fixups"

Jori Koolstra (3):
vfs: move create error && negative dentry case in lookup_open() up
vfs: call audit_inode_child() in lookup_open() on failure
fs/namei.c: update kerneldoc of atomic_open()

NeilBrown (4):
VFS: move mnt_want_write() and locking into lookup_open()
VFS: move delegated_inode retry loop into lookup_open()
VFS: add vfs_lookup_open() for nfsd
Remove excl arg to ->create inode_operation

Documentation/filesystems/locking.rst | 2 +-
Documentation/filesystems/porting.rst | 8 +
Documentation/filesystems/vfs.rst | 2 +-
fs/9p/vfs_inode.c | 3 +-
fs/9p/vfs_inode_dotl.c | 3 +-
fs/affs/affs.h | 2 +-
fs/affs/namei.c | 2 +-
fs/afs/dir.c | 4 +-
fs/bad_inode.c | 2 +-
fs/bfs/dir.c | 2 +-
fs/btrfs/inode.c | 2 +-
fs/ceph/dir.c | 2 +-
fs/coda/dir.c | 2 +-
fs/ecryptfs/inode.c | 2 +-
fs/efivarfs/inode.c | 2 +-
fs/exfat/namei.c | 2 +-
fs/ext2/namei.c | 2 +-
fs/ext4/namei.c | 2 +-
fs/f2fs/namei.c | 2 +-
fs/fat/namei_msdos.c | 2 +-
fs/fat/namei_vfat.c | 2 +-
fs/fuse/dir.c | 2 +-
fs/gfs2/inode.c | 5 +-
fs/hfs/dir.c | 2 +-
fs/hfsplus/dir.c | 2 +-
fs/hostfs/hostfs_kern.c | 2 +-
fs/hpfs/namei.c | 2 +-
fs/hugetlbfs/inode.c | 2 +-
fs/jffs2/dir.c | 4 +-
fs/jfs/namei.c | 2 +-
fs/minix/namei.c | 2 +-
fs/namei.c | 351 ++++++++++++++++++++++++----------
fs/nfs/dir.c | 4 +-
fs/nfs/internal.h | 2 +-
fs/nilfs2/namei.c | 2 +-
fs/ntfs/namei.c | 2 +-
fs/ntfs3/namei.c | 2 +-
fs/ocfs2/dlmfs/dlmfs.c | 3 +-
fs/ocfs2/namei.c | 3 +-
fs/omfs/dir.c | 2 +-
fs/orangefs/namei.c | 3 +-
fs/overlayfs/dir.c | 2 +-
fs/ramfs/inode.c | 2 +-
fs/smb/client/cifsfs.h | 2 +-
fs/smb/client/dir.c | 2 +-
fs/ubifs/dir.c | 2 +-
fs/udf/namei.c | 2 +-
fs/ufs/namei.c | 3 +-
fs/vboxsf/dir.c | 4 +-
fs/xfs/xfs_iops.c | 5 +-
include/linux/fs.h | 2 +-
include/linux/namei.h | 3 +
ipc/mqueue.c | 2 +-
mm/shmem.c | 2 +-
54 files changed, 313 insertions(+), 171 deletions(-)