[GIT PULL 06/12 for v7.0] vfs btrfs

From: Christian Brauner

Date: Fri Feb 06 2026 - 11:55:10 EST


Hey Linus,

/* Summary */

This contains some changes for btrfs that are taken to the vfs tree to
stop duplicating VFS code for subvolume/snapshot dentry

Btrfs has carried private copies of the VFS may_delete() and
may_create() functions in fs/btrfs/ioctl.c for permission checks
during subvolume creation and snapshot destruction. These copies have
drifted out of sync with the VFS originals — btrfs_may_delete() is
missing the uid/gid validity check and btrfs_may_create() is missing
the audit_inode_child() call.

Export the VFS functions as may_create_dentry() and
may_delete_dentry() and switch btrfs to use them, removing ~70 lines
of duplicated code.

/* 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.btrfs

for you to fetch changes up to f97f020075e83d05695d3f86469d50e21eccffab:

Merge patch series "btrfs: stop duplicating VFS code for subvolume/snapshot dentry" (2026-01-14 17:17:53 +0100)

----------------------------------------------------------------
vfs-7.0-rc1.btrfs

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (1):
Merge patch series "btrfs: stop duplicating VFS code for subvolume/snapshot dentry"

Filipe Manana (4):
fs: export may_delete() as may_delete_dentry()
fs: export may_create() as may_create_dentry()
btrfs: use may_delete_dentry() in btrfs_ioctl_snap_destroy()
btrfs: use may_create_dentry() in btrfs_mksubvol()

fs/btrfs/ioctl.c | 73 ++----------------------------------------------------
fs/namei.c | 36 ++++++++++++++-------------
include/linux/fs.h | 5 ++++
3 files changed, 26 insertions(+), 88 deletions(-)