[GIT PULL 09/12 for v7.0] vfs atomic_open

From: Christian Brauner

Date: Fri Feb 06 2026 - 11:58:33 EST


Hey Linus,

/* Summary */

Allow knfsd to use atomic_open():

While knfsd offers combined exclusive create and open results to
clients, on some filesystems those results are not atomic. The
separate vfs_create() + vfs_open() sequence in dentry_create() can
produce races and unexpected errors. For example, open O_CREAT with
mode 0 will succeed in creating the file but return -EACCES from
vfs_open(). Additionally, network filesystems benefit from reducing
remote round-trip operations by using a single atomic_open() call.

Teach dentry_create() -- whose sole caller is knfsd -- to use
atomic_open() for filesystems that support it.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3+b1)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

No known conflicts.

Merge conflicts with other trees
================================

The following changes since commit 8f0b4cce4481fb22653697cced8d0d04027cb1e8:

Linux 6.19-rc1 (2025-12-14 16:05:07 +1200)

are available in the Git repository at:

git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.atomic_open

for you to fetch changes up to 6ea258d1f6895c61af212473b51477d39b8c99d2:

fs/namei: fix kernel-doc markup for dentry_create (2026-01-20 14:54:01 +0100)

----------------------------------------------------------------
vfs-7.0-rc1.atomic_open

Please consider pulling these changes from the signed vfs-7.0-rc1.atomic_open tag.

Thanks!
Christian

----------------------------------------------------------------
Benjamin Coddington (3):
VFS: move dentry_create() from fs/open.c to fs/namei.c
VFS: Prepare atomic_open() for dentry_create()
VFS/knfsd: Teach dentry_create() to use atomic_open()

Christian Brauner (1):
Merge patch series "Allow knfsd to use atomic_open()"

Jay Winston (1):
fs/namei: fix kernel-doc markup for dentry_create

fs/namei.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++-----
fs/nfsd/nfs4proc.c | 11 ++++++--
fs/open.c | 39 --------------------------
include/linux/fs.h | 2 +-
4 files changed, 82 insertions(+), 50 deletions(-)