* [GIT PULL 01/12 for v7.0] vfs rust
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
@ 2026-02-06 16:49 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:49 ` [GIT PULL 02/12 for v7.0] vfs initrd Christian Brauner
` (12 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:49 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains the rust changes for this cycle.
llow inlining C helpers into Rust when using LTO: Add the __rust_helper
annotation to all VFS-related Rust helper functions.
Currently, C helpers cannot be inlined into Rust code even under LTO because
LLVM detects slightly different codegen options between the C and Rust
compilation units (differing null-pointer-check flags, builtin lists, and
target feature strings). The __rust_helper macro is the first step toward
fixing this: it is currently #defined to nothing, but a follow-up series will
change it to __always_inline when compiling with LTO (while keeping it empty
for bindgen, which ignores inline functions).
This picks up the VFS portion (fs, pid_namespace, poll) of a larger tree-wide
series.
/* 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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.rust
for you to fetch changes up to 5334fc280735dcf5882511a219a99b5759e14870:
Merge patch series "Allow inlining C helpers into Rust when using LTO" (2025-12-15 14:13:04 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.rust
Please consider pulling these changes from the signed vfs-7.0-rc1.rust tag.
Thanks!
Christian
----------------------------------------------------------------
Alice Ryhl (3):
rust: fs: add __rust_helper to helpers
rust: pid_namespace: add __rust_helper to helpers
rust: poll: add __rust_helper to helpers
Christian Brauner (1):
Merge patch series "Allow inlining C helpers into Rust when using LTO"
rust/helpers/fs.c | 2 +-
rust/helpers/pid_namespace.c | 8 +++++---
rust/helpers/poll.c | 5 +++--
3 files changed, 9 insertions(+), 6 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 02/12 for v7.0] vfs initrd
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
2026-02-06 16:49 ` [GIT PULL 01/12 for v7.0] vfs rust Christian Brauner
@ 2026-02-06 16:49 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:49 ` [GIT PULL 03/12 for v7.0] vfs nonblocking_timestamps Christian Brauner
` (11 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:49 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
Remove classic initrd linuxrc support
Remove the deprecated linuxrc-based initrd code path and related dead code.
The linuxrc initrd path was deprecated in 2020 and this series completes its
removal. If we see real-life regressions we'll revert.
The core change removes handle_initrd() and init_linuxrc() — the entire flow
that ran /linuxrc from an initrd, pivoted roots, and handed off to the real
root filesystem. With that gone, initrd_load() becomes void (no longer
short-circuits prepare_namespace()), rd_load_image() is simplified to always
load /initrd.image instead of taking a path, and rd_load_disk() is deleted.
The /proc/sys/kernel/real-root-dev sysctl and its backing variable are
removed since they only existed for linuxrc to communicate the real root
device back to the kernel. The no-op load_ramdisk= and prompt_ramdisk=
parameters are dropped, and noinitrd and ramdisk_start= gain deprecation
warnings.
Initramfs is entirely unaffected. The non-linuxrc initrd path
(root=/dev/ram0) is preserved but now carries a deprecation warning targeting
January 2027 removal.
/* 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
=============================
diff --cc Documentation/admin-guide/kernel-parameters.txt
index aa0031108bc1,f67591615a6a..000000000000
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@@ -3472,13 -3437,6 +3472,11 @@@ Kernel parameter
If there are multiple matching configurations changing
the same attribute, the last one is used.
+ liveupdate= [KNL,EARLY]
+ Format: <bool>
+ Enable Live Update Orchestrator (LUO).
+ Default: off.
+
- load_ramdisk= [RAM] [Deprecated]
-
lockd.nlm_grace_period=P [NFS] Assign grace period.
Format: <integer>
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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.initrd
for you to fetch changes up to ef12d0573a7f5e7a495e81d773ae5f3e98230cd4:
Merge patch series "initrd: remove half of classic initrd support" (2026-01-12 17:22:27 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.initrd
Please consider pulling these changes from the signed vfs-7.0-rc1.initrd tag.
Thanks!
Christian
----------------------------------------------------------------
Askar Safin (3):
init: remove deprecated "load_ramdisk" and "prompt_ramdisk" command line parameters
initrd: remove deprecated code path (linuxrc)
init: remove /proc/sys/kernel/real-root-dev
Christian Brauner (1):
Merge patch series "initrd: remove half of classic initrd support"
Documentation/admin-guide/kernel-parameters.txt | 12 ++-
Documentation/admin-guide/sysctl/kernel.rst | 6 --
arch/arm/configs/neponset_defconfig | 2 +-
include/linux/initrd.h | 2 -
include/uapi/linux/sysctl.h | 1 -
init/do_mounts.c | 11 +--
init/do_mounts.h | 18 +---
init/do_mounts_initrd.c | 107 ++----------------------
init/do_mounts_rd.c | 24 +-----
9 files changed, 23 insertions(+), 160 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 03/12 for v7.0] vfs nonblocking_timestamps
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
2026-02-06 16:49 ` [GIT PULL 01/12 for v7.0] vfs rust Christian Brauner
2026-02-06 16:49 ` [GIT PULL 02/12 for v7.0] vfs initrd Christian Brauner
@ 2026-02-06 16:49 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 04/12 for v7.0] vfs leases Christian Brauner
` (10 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:49 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains the changes to support non-blocking timestamp updates.
Since 66fa3cedf16a ("fs: Add async write file modification handling.")
file_update_time_flags() unconditionally returns -EAGAIN when any
timestamp needs updating and IOCB_NOWAIT is set. This makes
non-blocking direct writes impossible on file systems with granular
enough timestamps, which in practice means all of them.
This series reworks the timestamp update path to propagate IOCB_NOWAIT
through ->update_time so that file systems which can update timestamps
without blocking are no longer penalized.
With that groundwork in place, the core change passes IOCB_NOWAIT into
->update_time and returns -EAGAIN only when the file system indicates it
would block. XFS implements non-blocking timestamp updates by using the
new ->sync_lazytime and open-coding generic_update_time without the
S_NOWAIT check, since the lazytime path through the generic helpers can
never block in XFS.
/* 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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.nonblocking_timestamps
for you to fetch changes up to 77ef2c3ff5916d358c436911ca6a961060709f04:
Merge patch series "re-enable IOCB_NOWAIT writes to files v6" (2026-01-12 14:01:42 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.nonblocking_timestamps
Please consider pulling these changes from the signed vfs-7.0-rc1.nonblocking_timestamps tag.
Thanks!
Christian
----------------------------------------------------------------
Christian Brauner (1):
Merge patch series "re-enable IOCB_NOWAIT writes to files v6"
Christoph Hellwig (11):
fs: remove inode_update_time
fs: allow error returns from generic_update_time
nfs: split nfs_update_timestamps
fat: cleanup the flags for fat_truncate_time
fs: refactor ->update_time handling
fs: factor out a sync_lazytime helper
fs: add a ->sync_lazytime method
fs: add support for non-blocking timestamp updates
fs: refactor file_update_time_flags
xfs: implement ->sync_lazytime
xfs: enable non-blocking timestamp updates
Documentation/filesystems/locking.rst | 5 +-
Documentation/filesystems/vfs.rst | 9 +-
fs/bad_inode.c | 3 +-
fs/btrfs/inode.c | 13 ++-
fs/fat/dir.c | 2 +-
fs/fat/fat.h | 11 +-
fs/fat/file.c | 14 +--
fs/fat/inode.c | 2 +-
fs/fat/misc.c | 59 ++++------
fs/fat/namei_msdos.c | 13 +--
fs/fat/namei_vfat.c | 9 +-
fs/fs-writeback.c | 33 ++++--
fs/gfs2/inode.c | 9 +-
fs/inode.c | 202 ++++++++++++++++++----------------
fs/internal.h | 3 +-
fs/nfs/inode.c | 37 +++----
fs/orangefs/inode.c | 29 +++--
fs/orangefs/orangefs-kernel.h | 3 +-
fs/overlayfs/inode.c | 7 +-
fs/overlayfs/overlayfs.h | 3 +-
fs/sync.c | 4 +-
fs/ubifs/file.c | 28 ++---
fs/ubifs/ubifs.h | 3 +-
fs/xfs/xfs_iops.c | 49 ++++++---
fs/xfs/xfs_super.c | 29 -----
include/linux/fs.h | 30 +++--
include/trace/events/writeback.h | 6 -
27 files changed, 325 insertions(+), 290 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 04/12 for v7.0] vfs leases
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (2 preceding siblings ...)
2026-02-06 16:49 ` [GIT PULL 03/12 for v7.0] vfs nonblocking_timestamps Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 05/12 for v7.0] vfs fserror Christian Brauner
` (9 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains updates for lease support to require filesystems to
explicitly opt-in to lease support
Currently kernel_setlease() falls through to generic_setlease() when a
filesystem does not define ->setlease(), silently granting lease support
to every filesystem regardless of whether it is prepared for it. This is
a poor default: most filesystems never intended to support leases, and
the silent fallthrough makes it impossible to distinguish "supports
leases" from "never thought about it".
This series inverts the default. It adds explicit .setlease =
generic_setlease assignments to every in-tree filesystem that should
retain lease support, then changes kernel_setlease() to return -EINVAL
when ->setlease is NULL. With the new default in place,
simple_nosetlease() is redundant and is removed along with all
references to 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
================================
diff --cc Documentation/filesystems/porting.rst
index ed3ac56e3c76,2b4dddfe6c66..000000000000
--- a/Documentation/filesystems/porting.rst
+++ b/Documentation/filesystems/porting.rst
@@@ -1336,7 -1339,6 +1336,15 @@@ in-tree filesystems have done)
**mandatory**
+The ->setlease() file_operation must now be explicitly set in order to provide
+support for leases. When set to NULL, the kernel will now return -EINVAL to
+attempts to set a lease. Filesystems that wish to use the kernel-internal lease
+implementation should set it to generic_setlease().
++
++---
++
++**mandatory**
++
+ do_{mkdir,mknod,link,symlink,renameat2,rmdir,unlink}() are gone; filename_...()
+ counterparts replace those. The difference is that the former used to consume
+ filename references; the latter do not.
[1]: https://lore.kernel.org/linux-next/20260115093828.318572ea@canb.auug.org.au/
[2]: https://lore.kernel.org/linux-next/aW41jU88O4Hfnt9i@sirena.org.uk/
The following changes since commit 7d42f2b1cc3a60a71784967384ddcf29fe3f35ed:
Merge patch series "vfs: properly deny directory leases on filesystems with special lease handling" (2026-01-12 10:54:52 +0100)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.leases
for you to fetch changes up to 056a96e65f3e2a3293b99a336de92376407af5fa:
fuse: add setlease file operation (2026-01-13 09:56:11 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.leases
Please consider pulling these changes from the signed vfs-7.0-rc1.leases tag.
Thanks!
Christian
----------------------------------------------------------------
Christian Brauner (1):
Merge patch series "vfs: require filesystems to explicitly opt-in to lease support"
Jeff Layton (25):
fs: add setlease to generic_ro_fops and read-only filesystem directory operations
affs: add setlease file operation
btrfs: add setlease file operation
erofs: add setlease file operation
ext2: add setlease file operation
ext4: add setlease file operation
exfat: add setlease file operation
f2fs: add setlease file operation
fat: add setlease file operation
gfs2: add a setlease file operation
jffs2: add setlease file operation
jfs: add setlease file operation
nilfs2: add setlease file operation
ntfs3: add setlease file operation
ocfs2: add setlease file operation
orangefs: add setlease file operation
overlayfs: add setlease file operation
squashfs: add setlease file operation
tmpfs: add setlease file operation
udf: add setlease file operation
ufs: add setlease file operation
xfs: add setlease file operation
filelock: default to returning -EINVAL when ->setlease operation is NULL
fs: remove simple_nosetlease()
fuse: add setlease file operation
Documentation/filesystems/porting.rst | 9 +++++++++
Documentation/filesystems/vfs.rst | 9 ++++++---
fs/9p/vfs_dir.c | 2 --
fs/9p/vfs_file.c | 2 --
fs/affs/dir.c | 2 ++
fs/affs/file.c | 2 ++
fs/befs/linuxvfs.c | 2 ++
fs/btrfs/file.c | 2 ++
fs/btrfs/inode.c | 2 ++
fs/ceph/dir.c | 2 --
fs/ceph/file.c | 1 -
fs/cramfs/inode.c | 2 ++
fs/efs/dir.c | 2 ++
fs/erofs/data.c | 2 ++
fs/erofs/dir.c | 2 ++
fs/exfat/dir.c | 2 ++
fs/exfat/file.c | 2 ++
fs/ext2/dir.c | 2 ++
fs/ext2/file.c | 2 ++
fs/ext4/dir.c | 2 ++
fs/ext4/file.c | 2 ++
fs/f2fs/dir.c | 2 ++
fs/f2fs/file.c | 2 ++
fs/fat/dir.c | 2 ++
fs/fat/file.c | 2 ++
fs/freevxfs/vxfs_lookup.c | 2 ++
fs/fuse/dir.c | 1 -
fs/fuse/file.c | 1 +
fs/gfs2/file.c | 3 +--
fs/isofs/dir.c | 2 ++
fs/jffs2/dir.c | 2 ++
fs/jffs2/file.c | 2 ++
fs/jfs/file.c | 2 ++
fs/jfs/namei.c | 2 ++
fs/libfs.c | 20 ++------------------
fs/locks.c | 3 +--
fs/nfs/dir.c | 1 -
fs/nfs/file.c | 1 -
fs/nilfs2/dir.c | 3 ++-
fs/nilfs2/file.c | 2 ++
fs/ntfs3/dir.c | 3 +++
fs/ntfs3/file.c | 3 +++
fs/ocfs2/file.c | 5 +++++
fs/orangefs/dir.c | 4 +++-
fs/orangefs/file.c | 1 +
fs/overlayfs/file.c | 2 ++
fs/overlayfs/readdir.c | 2 ++
fs/qnx4/dir.c | 2 ++
fs/qnx6/dir.c | 2 ++
fs/read_write.c | 2 ++
fs/smb/client/cifsfs.c | 1 -
fs/squashfs/dir.c | 2 ++
fs/squashfs/file.c | 4 +++-
fs/udf/dir.c | 2 ++
fs/udf/file.c | 2 ++
fs/ufs/dir.c | 2 ++
fs/ufs/file.c | 2 ++
fs/vboxsf/dir.c | 1 -
fs/vboxsf/file.c | 1 -
fs/xfs/xfs_file.c | 3 +++
include/linux/fs.h | 1 -
mm/shmem.c | 2 ++
62 files changed, 117 insertions(+), 42 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 05/12 for v7.0] vfs fserror
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (3 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 04/12 for v7.0] vfs leases Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 06/12 for v7.0] vfs btrfs Christian Brauner
` (8 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains the changes to support generif I/O error reporting.
Filesystems currently have no standard mechanism for reporting metadata
corruption and file I/O errors to userspace via fsnotify. Each
filesystem (xfs, ext4, erofs, f2fs, etc.) privately defines
EFSCORRUPTED, and error reporting to fanotify is inconsistent or absent
entirely.
This series introduces a generic fserror infrastructure built around
struct super_block that gives filesystems a standard way to queue
metadata and file I/O error reports for delivery to fsnotify. Errors
are queued via mempools and queue_work to avoid holding filesystem locks
in the notification path; unmount waits for pending events to drain. A
new super_operations::report_error callback lets filesystem drivers
respond to file I/O errors themselves (to be used by an upcoming XFS
self-healing patchset).
On the uapi side, EFSCORRUPTED and EUCLEAN are promoted from private
per-filesystem definitions to canonical errno.h values across all
architectures.
/* 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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.fserror
for you to fetch changes up to 347b7042fb26beaae1ea46d0f6c47251fb52985f:
Merge patch series "fs: generic file IO error reporting" (2026-01-13 09:58:07 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.fserror
Please consider pulling these changes from the signed vfs-7.0-rc1.fserror tag.
Thanks!
Christian
----------------------------------------------------------------
Christian Brauner (1):
Merge patch series "fs: generic file IO error reporting"
Darrick J. Wong (6):
uapi: promote EFSCORRUPTED and EUCLEAN to errno.h
fs: report filesystem and file I/O errors to fsnotify
iomap: report file I/O errors to the VFS
xfs: report fs metadata errors via fsnotify
xfs: translate fsdax media errors into file "data lost" errors when convenient
ext4: convert to new fserror helpers
arch/alpha/include/uapi/asm/errno.h | 2 +
arch/mips/include/uapi/asm/errno.h | 2 +
arch/parisc/include/uapi/asm/errno.h | 2 +
arch/sparc/include/uapi/asm/errno.h | 2 +
fs/Makefile | 2 +-
fs/erofs/internal.h | 2 -
fs/ext2/ext2.h | 1 -
fs/ext4/ext4.h | 3 -
fs/ext4/ioctl.c | 2 +
fs/ext4/super.c | 13 +-
fs/f2fs/f2fs.h | 3 -
fs/fserror.c | 194 +++++++++++++++++++++++++++++
fs/iomap/buffered-io.c | 23 +++-
fs/iomap/direct-io.c | 12 ++
fs/iomap/ioend.c | 6 +
fs/minix/minix.h | 2 -
fs/super.c | 3 +
fs/udf/udf_sb.h | 2 -
fs/xfs/xfs_fsops.c | 4 +
fs/xfs/xfs_health.c | 14 +++
fs/xfs/xfs_linux.h | 2 -
fs/xfs/xfs_notify_failure.c | 4 +
include/linux/fs/super_types.h | 7 ++
include/linux/fserror.h | 75 +++++++++++
include/linux/jbd2.h | 3 -
include/uapi/asm-generic/errno.h | 2 +
tools/arch/alpha/include/uapi/asm/errno.h | 2 +
tools/arch/mips/include/uapi/asm/errno.h | 2 +
tools/arch/parisc/include/uapi/asm/errno.h | 2 +
tools/arch/sparc/include/uapi/asm/errno.h | 2 +
tools/include/uapi/asm-generic/errno.h | 2 +
31 files changed, 373 insertions(+), 24 deletions(-)
create mode 100644 fs/fserror.c
create mode 100644 include/linux/fserror.h
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 06/12 for v7.0] vfs btrfs
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (4 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 05/12 for v7.0] vfs fserror Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 07/12 for v7.0] vfs minix Christian Brauner
` (7 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
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@gitolite.kernel.org: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(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 07/12 for v7.0] vfs minix
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (5 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 06/12 for v7.0] vfs btrfs Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 08/12 for v7.0] vfs nullfs Christian Brauner
` (6 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains minix changes for this cycle.
Add required sanity checking to minix_check_superblock() The minix
filesystem driver does not validate several superblock fields before
using them during mount, allowing a crafted filesystem image to trigger
out-of-bounds accesses (reported by syzbot).
Consolidate and strengthen superblock validation in
minix_check_superblock().
/* 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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.minix
for you to fetch changes up to 8c97a6ddc95690a938ded44b4e3202f03f15078c:
minix: Add required sanity checking to minix_check_superblock() (2026-01-19 12:16:06 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.minix
Please consider pulling these changes from the signed vfs-7.0-rc1.minix tag.
Thanks!
Christian
----------------------------------------------------------------
Jori Koolstra (1):
minix: Add required sanity checking to minix_check_superblock()
fs/minix/inode.c | 50 +++++++++++++++++++++++++++++---------------------
1 file changed, 29 insertions(+), 21 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 08/12 for v7.0] vfs nullfs
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (6 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 07/12 for v7.0] vfs minix Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 09/12 for v7.0] vfs atomic_open Christian Brauner
` (5 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
Add a completely catatonic minimal pseudo filesystem called "nullfs" and
make pivot_root() work in the initramfs.
Currently pivot_root() does not work on the real rootfs because it
cannot be unmounted. Userspace has to recursively delete initramfs
contents manually before continuing boot, using the fragile switch_root
sequence (overmount + chroot).
Add nullfs, a minimal immutable filesystem that serves as the true root
of the mount hierarchy. The mutable rootfs (tmpfs/ramfs) is mounted on
top of it. This allows userspace to simply:
chdir(new_root);
pivot_root(".", ".");
umount2(".", MNT_DETACH);
without the traditional switch_root workarounds. systemd already handles
this correctly. It tries pivot_root() first and falls back to MS_MOVE
only when that fails.
This also means rootfs mounts in unprivileged namespaces no longer need
MNT_LOCKED, since the immutable nullfs guarantees nothing can be
revealed by unmounting the covering mount.
nullfs is a single-instance filesystem (get_tree_single()) marked
SB_NOUSER | SB_I_NOEXEC | SB_I_NODEV with an immutable empty root
directory. This means sooner or later it can be used to overmount other
directories to hide their contents without any additional protection
needed.
We enable it unconditionally. If we see any real regression we'll hide
it behind a boot option.
nullfs has extensions beyond this in the future. It will serve as a
concept to support the creation of completely empty mount namespaces -
which is work coming up in the next cycle.
/* 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 or other vfs branches
====================================================
Conflict with the vfs fserror branch in fs/Makefile. The fserror branch
added fserror.o, while the nullfs branch added nullfs.o. The resolution
includes both.
diff --cc fs/Makefile
index f238cc5ea2e9,becf133e4791..cf4a745e9679
--- a/fs/Makefile
+++ b/fs/Makefile
@@@ -16,7 -16,7 +16,7 @@@ obj-y := open.o read_write.o file_table
stack.o fs_struct.o statfs.o fs_pin.o nsfs.o \
fs_dirent.o fs_context.o fs_parser.o fsopen.o init.o \
kernel_read_file.o mnt_idmapping.o remap_range.o pidfs.o \
- file_attr.o fserror.o
- file_attr.o nullfs.o
++ file_attr.o fserror.o nullfs.o
obj-$(CONFIG_BUFFER_HEAD) += buffer.o mpage.o
obj-$(CONFIG_PROC_FS) += proc_namespace.o
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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.nullfs
for you to fetch changes up to 313c47f4fe4d07eb2969f429a66ad331fe2b3b6f:
fs: use nullfs unconditionally as the real rootfs (2026-01-14 11:23:39 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.nullfs
Please consider pulling these changes from the signed vfs-7.0-rc1.nullfs tag.
Thanks!
Christian
----------------------------------------------------------------
Christian Brauner (6):
fs: ensure that internal tmpfs mount gets mount id zero
fs: add init_pivot_root()
fs: add immutable rootfs
docs: mention nullfs
Merge patch series "fs: add immutable rootfs"
fs: use nullfs unconditionally as the real rootfs
.../filesystems/ramfs-rootfs-initramfs.rst | 26 ++--
fs/Makefile | 2 +-
fs/init.c | 17 +++
fs/internal.h | 1 +
fs/mount.h | 1 +
fs/namespace.c | 159 +++++++++++++--------
fs/nullfs.c | 70 +++++++++
include/linux/init_syscalls.h | 1 +
include/uapi/linux/magic.h | 1 +
init/do_mounts.c | 12 +-
10 files changed, 216 insertions(+), 74 deletions(-)
create mode 100644 fs/nullfs.c
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 09/12 for v7.0] vfs atomic_open
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (7 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 08/12 for v7.0] vfs nullfs Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 10/12 for v7.0] vfs namespace Christian Brauner
` (4 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
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@gitolite.kernel.org: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(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 10/12 for v7.0] vfs namespace
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (8 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 09/12 for v7.0] vfs atomic_open Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 11/12 for v7.0] vfs iomap Christian Brauner
` (3 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains the mount changes for this cycle.
statmount: accept fd as a parameter
Extend struct mnt_id_req with a file descriptor field and a new
STATMOUNT_BY_FD flag. When set, statmount() returns mount information for the
mount the fd resides on — including detached mounts (unmounted via
umount2(MNT_DETACH)). For detached mounts the STATMOUNT_MNT_POINT and
STATMOUNT_MNT_NS_ID mask bits are cleared since neither is meaningful. The
capability check is skipped for STATMOUNT_BY_FD since holding an fd already
implies prior access to the mount and equivalent information is available
through fstatfs() and /proc/pid/mountinfo without privilege. Includes
comprehensive selftests covering both attached and detached mount cases.
fs: Remove internal old mount API code (1 patch)
Now that every in-tree filesystem has been converted to the new mount API,
remove all the legacy shim code in fs_context.c that handled unconverted
filesystems. This deletes ~280 lines including legacy_init_fs_context(), the
legacy_fs_context struct, and associated wrappers. The mount(2) syscall path
for userspace remains untouched. Documentation references to the legacy
callbacks are cleaned up.
mount: add OPEN_TREE_NAMESPACE (2 patches)
Add OPEN_TREE_NAMESPACE to open_tree(). Container runtimes currently use
CLONE_NEWNS to copy the caller's entire mount namespace — only to then
pivot_root() and recursively unmount everything they just copied. With large
mount tables and thousands of parallel container launches this creates
significant contention on the namespace semaphore.
OPEN_TREE_NAMESPACE copies only the specified mount tree (like
OPEN_TREE_CLONE) but returns a mount namespace fd instead of a detached mount
fd. The new namespace contains the copied tree mounted on top of a clone of
the real rootfs. This functions as a combined unshare(CLONE_NEWNS) +
pivot_root() in a single syscall. Works with user namespaces: an
unshare(CLONE_NEWUSER) followed by OPEN_TREE_NAMESPACE creates a mount
namespace owned by the new user namespace. Mount namespace file mounts are
excluded from the copy to prevent cycles. Includes ~1000 lines of selftests.
/* 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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.namespace
for you to fetch changes up to 1bce1a664ac25d37a327c433a01bc347f0a81bd6:
Merge patch series "mount: add OPEN_TREE_NAMESPACE" (2026-01-16 19:21:40 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.namespace
Please consider pulling these changes from the signed vfs-7.0-rc1.namespace tag.
Thanks!
Christian
----------------------------------------------------------------
Bhavik Sachdev (3):
statmount: permission check should return EPERM
statmount: accept fd as a parameter
selftests: statmount: tests for STATMOUNT_BY_FD
Christian Brauner (4):
Merge patch series "statmount: accept fd as a parameter"
mount: add OPEN_TREE_NAMESPACE
selftests/open_tree: add OPEN_TREE_NAMESPACE tests
Merge patch series "mount: add OPEN_TREE_NAMESPACE"
Eric Sandeen (1):
fs: Remove internal old mount API code
Documentation/filesystems/locking.rst | 8 -
Documentation/filesystems/mount_api.rst | 2 -
Documentation/filesystems/porting.rst | 7 +-
Documentation/filesystems/vfs.rst | 58 +-
fs/fs_context.c | 208 +---
fs/fsopen.c | 10 -
fs/internal.h | 2 +-
fs/namespace.c | 265 ++++-
fs/nsfs.c | 13 +
include/linux/fs.h | 2 -
include/linux/fs/super_types.h | 1 -
include/uapi/linux/mount.h | 13 +-
.../selftests/filesystems/open_tree_ns/.gitignore | 1 +
.../selftests/filesystems/open_tree_ns/Makefile | 10 +
.../filesystems/open_tree_ns/open_tree_ns_test.c | 1030 ++++++++++++++++++++
.../selftests/filesystems/statmount/statmount.h | 15 +-
.../filesystems/statmount/statmount_test.c | 261 ++++-
.../filesystems/statmount/statmount_test_ns.c | 101 +-
tools/testing/selftests/filesystems/utils.c | 26 +
tools/testing/selftests/filesystems/utils.h | 1 +
20 files changed, 1669 insertions(+), 365 deletions(-)
create mode 100644 tools/testing/selftests/filesystems/open_tree_ns/.gitignore
create mode 100644 tools/testing/selftests/filesystems/open_tree_ns/Makefile
create mode 100644 tools/testing/selftests/filesystems/open_tree_ns/open_tree_ns_test.c
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 11/12 for v7.0] vfs iomap
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (9 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 10/12 for v7.0] vfs namespace Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 12/12 for v7.0] vfs misc Christian Brauner
` (2 subsequent siblings)
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains the iomap changes for this cycle.
Erofs page cache sharing preliminaries:
Plumb a void *private parameter through iomap_read_folio() and
iomap_readahead() into iomap_iter->private, matching iomap DIO. Erofs
uses this to replace a bogus kmap_to_page() call, as preparatory work
for page cache sharing.
Fix for invalid folio access:
Fix an invalid folio access when a folio without iomap_folio_state is
fully submitted to the IO helper — the helper may call
folio_end_read() at any time, so ctx->cur_folio must be invalidated
after full submission.
/* 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
================================
Conflict with the ntfs3 tree. commit 099ef9ab9203d ("fs/ntfs3: implement
iomap-based file operations") calls iomap_read_folio() and iomap_readahead()
with two arguments, but commit 8806f279244bf ("iomap: stash iomap read ctx
in the private field of iomap_iter") added a third parameter.
diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c
--- a/fs/ntfs3/inode.c
+++ b/fs/ntfs3/inode.c
@@ -678,7 +678,7 @@
- iomap_read_folio(&ntfs_iomap_ops, &ctx);
+ iomap_read_folio(&ntfs_iomap_ops, &ctx, NULL);
@@ -702,7 +702,7 @@
- iomap_readahead(&ntfs_iomap_ops, &ctx);
+ iomap_readahead(&ntfs_iomap_ops, &ctx, NULL);
[1]: https://lore.kernel.org/linux-next/aW5AGPFq0HPi440m@sirena.org.uk/
[2]: https://lore.kernel.org/linux-next/202601201453.3N9V4NVP-lkp@intel.com/
[3]: https://lore.kernel.org/linux-next/202601201642.SjxE1oMu-lkp@intel.com/
[4]: https://lore.kernel.org/linux-next/aXdnKldyCVLxrk78@sirena.org.uk/
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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.iomap
for you to fetch changes up to aa35dd5cbc060bc3e28ad22b1d76eefa3f024030:
iomap: fix invalid folio access after folio_end_read() (2026-01-29 13:42:05 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.iomap
Please consider pulling these changes from the signed vfs-7.0-rc1.iomap tag.
Thanks!
Christian
----------------------------------------------------------------
Christian Brauner (1):
Merge patch series "iomap: erofs page cache sharing preliminaries"
Hongbo Li (2):
iomap: stash iomap read ctx in the private field of iomap_iter
erofs: hold read context in iomap_iter if needed
Joanne Koong (1):
iomap: fix invalid folio access after folio_end_read()
fs/erofs/data.c | 67 ++++++++++++++++++++++++++++++++++----------------
fs/fuse/file.c | 4 +--
fs/iomap/buffered-io.c | 57 ++++++++++++++++++++++--------------------
include/linux/iomap.h | 8 +++---
4 files changed, 83 insertions(+), 53 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 12/12 for v7.0] vfs misc
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (10 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 11/12 for v7.0] vfs iomap Christian Brauner
@ 2026-02-06 16:50 ` Christian Brauner
2026-02-07 5:11 ` Nathan Chancellor
2026-02-10 0:50 ` pr-tracker-bot
2026-02-16 12:29 ` [GIT PULL 13/12 for v7.0] kernel misc Christian Brauner
2026-02-16 12:55 ` [GIT PULL 14/12 for v7.0] vfs misc 2 Christian Brauner
13 siblings, 2 replies; 31+ messages in thread
From: Christian Brauner @ 2026-02-06 16:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
/* Summary */
This contains a mix of VFS cleanups, performance improvements, API fixes,
documentation, and a deprecation notice.
Scalability and performance:
- Rework pid allocation to only take pidmap_lock once instead of twice
during alloc_pid(), improving thread creation/teardown throughput by
10-16% depending on false-sharing luck. Pad the namespace refcount to
reduce false-sharing.
- Track file lock presence via a flag in ->i_opflags instead of reading
->i_flctx, avoiding false-sharing with ->i_readcount on open/close
hot paths. Measured 4-16% improvement on 24-core open-in-a-loop
benchmarks.
- Use a consume fence in locks_inode_context() to match the
store-release/load-consume idiom, eliminating a hardware fence on
some architectures.
- Annotate cdev_lock with __cacheline_aligned_in_smp to prevent
false-sharing.
- Remove a redundant DCACHE_MANAGED_DENTRY check in
__follow_mount_rcu() that never fires since the caller already
verifies it, eliminating a 100% mispredicted branch.
- Fix a 100% mispredicted likely() hint in devcgroup_inode_permission()
that became wrong after a prior code reorder.
Bug fixes and correctness:
- Make insert_inode_locked() wait for inode destruction instead of
skipping, fixing a corner case where two matching inodes could exist
in the hash.
- Move f_mode initialization before file_ref_init() in alloc_file() to
respect the SLAB_TYPESAFE_BY_RCU ordering contract.
- Add a WARN_ON_ONCE guard in try_to_free_buffers() for folios with no
buffers attached, preventing a null pointer dereference when
AS_RELEASE_ALWAYS is set but no release_folio op exists.
- Fix select restart_block to store end_time as timespec64, avoiding
truncation of tv_sec on 32-bit architectures.
- Make dump_inode() use get_kernel_nofault() to safely access inode and
superblock fields, matching the dump_mapping() pattern.
API modernization:
- Make posix_acl_to_xattr() allocate the buffer internally since every
single caller was doing it anyway. Reduces boilerplate and
unnecessary error checking across ~15 filesystems.
- Replace deprecated simple_strtoul() with kstrtoul() for the
ihash_entries, dhash_entries, mhash_entries, and mphash_entries boot
parameters, adding proper error handling.
- Convert chardev code to use guard(mutex) and __free(kfree) cleanup
patterns.
- Replace min_t() with min() or umin() in VFS code to avoid silently
truncating unsigned long to unsigned int.
- Gate LOOKUP_RCU assertions behind CONFIG_DEBUG_VFS since callers
already check the flag.
Deprecation:
- Begin deprecating legacy BSD process accounting (acct(2)). The
interface has numerous footguns and better alternatives exist (eBPF).
Documentation:
- Fix and complete kernel-doc for struct export_operations, removing
duplicated documentation between ReST and source.
- Fix kernel-doc warnings for __start_dirop() and ilookup5_nowait().
Testing:
- Add a kunit test for initramfs cpio handling of entries with
filesize > PATH_MAX.
Misc:
- Add missing <linux/init_task.h> include in fs_struct.c.
/* 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@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.misc
for you to fetch changes up to 6cbfdf89470ef3c2110f376a507d135e7a7a7378:
posix_acl: make posix_acl_to_xattr() alloc the buffer (2026-01-16 10:51:12 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.misc
Please consider pulling these changes from the signed vfs-7.0-rc1.misc tag.
Thanks!
Christian
----------------------------------------------------------------
Amir Goldstein (1):
fs: move initializing f_mode before file_ref_init()
André Almeida (4):
exportfs: Fix kernel-doc output for get_name()
exportfs: Mark struct export_operations functions at kernel-doc
exportfs: Complete kernel-doc for struct export_operations
docs: exportfs: Use source code struct documentation
Bagas Sanjaya (2):
fs: Describe @isnew parameter in ilookup5_nowait()
VFS: fix __start_dirop() kernel-doc warnings
Ben Dooks (1):
fs: add <linux/init_task.h> for 'init_fs'
Breno Leitao (2):
fs/namei: Remove redundant DCACHE_MANAGED_DENTRY check in __follow_mount_rcu
device_cgroup: remove branch hint after code refactor
Christian Brauner (3):
Merge patch series "further damage-control lack of clone scalability"
Merge patch series "vfs kernel-doc fixes for 6.19"
Merge patch series "exportfs: Some kernel-doc fixes"
David Disseldorp (1):
initramfs_test: kunit test for cpio.filesize > PATH_MAX
David Laight (1):
fs: use min() or umin() instead of min_t()
Deepakkumar Karn (1):
fs/buffer: add alert in try_to_free_buffers() for folios without buffers
Jeff Layton (1):
acct(2): begin the deprecation of legacy BSD process accounting
Mateusz Guzik (7):
fs: annotate cdev_lock with __cacheline_aligned_in_smp
ns: pad refcount
filelock: use a consume fence in locks_inode_context()
pid: only take pidmap_lock once on alloc
fs: track the inode having file locks with a flag in ->i_opflags
fs: only assert on LOOKUP_RCU when built with CONFIG_DEBUG_VFS
fs: make insert_inode_locked() wait for inode destruction
Miklos Szeredi (1):
posix_acl: make posix_acl_to_xattr() alloc the buffer
Thomas Weißschuh (1):
select: store end_time as timespec64 in restart block
Thorsten Blum (3):
fs: Replace simple_strtoul with kstrtoul in set_ihash_entries
dcache: Replace simple_strtoul with kstrtoul in set_dhash_entries
namespace: Replace simple_strtoul with kstrtoul to parse boot params
Yuto Ohnuki (1):
fs: improve dump_inode() to safely access inode fields
chen zhang (1):
chardev: Switch to guard(mutex) and __free(kfree)
Documentation/filesystems/nfs/exporting.rst | 42 ++-------
fs/9p/acl.c | 16 +---
fs/btrfs/acl.c | 10 +--
fs/buffer.c | 6 +-
fs/ceph/acl.c | 50 +++++------
fs/char_dev.c | 19 ++--
fs/dcache.c | 5 +-
fs/exec.c | 2 +-
fs/ext4/mballoc.c | 3 +-
fs/ext4/resize.c | 2 +-
fs/ext4/super.c | 2 +-
fs/fat/dir.c | 4 +-
fs/fat/file.c | 3 +-
fs/file_table.c | 10 +--
fs/fs_struct.c | 1 +
fs/fuse/acl.c | 12 +--
fs/fuse/dev.c | 2 +-
fs/fuse/file.c | 8 +-
fs/gfs2/acl.c | 13 +--
fs/inode.c | 96 ++++++++++++--------
fs/jfs/acl.c | 9 +-
fs/locks.c | 14 ++-
fs/namei.c | 11 ++-
fs/namespace.c | 10 +--
fs/ntfs3/xattr.c | 6 +-
fs/orangefs/acl.c | 8 +-
fs/posix_acl.c | 21 ++---
fs/select.c | 12 +--
fs/splice.c | 2 +-
include/linux/device_cgroup.h | 2 +-
include/linux/exportfs.h | 33 ++++---
include/linux/filelock.h | 18 +++-
include/linux/fs.h | 1 +
include/linux/ns/ns_common_types.h | 4 +-
include/linux/posix_acl_xattr.h | 5 +-
include/linux/restart_block.h | 4 +-
init/Kconfig | 7 +-
init/initramfs_test.c | 48 ++++++++++
kernel/pid.c | 131 ++++++++++++++++++----------
39 files changed, 357 insertions(+), 295 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 12/12 for v7.0] vfs misc
2026-02-06 16:50 ` [GIT PULL 12/12 for v7.0] vfs misc Christian Brauner
@ 2026-02-07 5:11 ` Nathan Chancellor
2026-02-09 9:31 ` Christian Brauner
2026-02-10 0:50 ` pr-tracker-bot
1 sibling, 1 reply; 31+ messages in thread
From: Nathan Chancellor @ 2026-02-07 5:11 UTC (permalink / raw)
To: Christian Brauner; +Cc: Linus Torvalds, linux-fsdevel, linux-kernel
On Fri, Feb 06, 2026 at 05:50:08PM +0100, Christian Brauner wrote:
> David Laight (1):
> fs: use min() or umin() instead of min_t()
This needs a fix up for 32-bit builds:
https://lore.kernel.org/20260113192243.73983-1-david.laight.linux@gmail.com/
$ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mrproper allmodconfig fs/fuse/file.o
In file included from <command-line>:
In function 'fuse_wr_pages',
inlined from 'fuse_perform_write' at fs/fuse/file.c:1347:27:
include/linux/compiler_types.h:705:45: error: call to '__compiletime_assert_508' declared with attribute error: min(((pos + len - 1) >> 12) - (pos >> 12) + 1, max_pages) signedness error
705 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^
include/linux/compiler_types.h:686:25: note: in definition of macro '__compiletime_assert'
686 | prefix ## suffix(); \
| ^~~~~~
include/linux/compiler_types.h:705:9: note: in expansion of macro '_compiletime_assert'
705 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/minmax.h:93:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
93 | BUILD_BUG_ON_MSG(!__types_ok(ux, uy), \
| ^~~~~~~~~~~~~~~~
include/linux/minmax.h:98:9: note: in expansion of macro '__careful_cmp_once'
98 | __careful_cmp_once(op, x, y, __UNIQUE_ID(x_), __UNIQUE_ID(y_))
| ^~~~~~~~~~~~~~~~~~
include/linux/minmax.h:105:25: note: in expansion of macro '__careful_cmp'
105 | #define min(x, y) __careful_cmp(min, x, y)
| ^~~~~~~~~~~~~
fs/fuse/file.c:1326:16: note: in expansion of macro 'min'
1326 | return min(((pos + len - 1) >> PAGE_SHIFT) - (pos >> PAGE_SHIFT) + 1,
| ^~~
David sent another patch before that one (though it does not look like
you were explicitly sent that one). Arnd also sent one.
https://lore.kernel.org/20251216141647.13911-1-david.laight.linux@gmail.com/
https://lore.kernel.org/20251223215442.720828-1-arnd@kernel.org/
Cheers,
Nathan
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: [GIT PULL 12/12 for v7.0] vfs misc
2026-02-07 5:11 ` Nathan Chancellor
@ 2026-02-09 9:31 ` Christian Brauner
0 siblings, 0 replies; 31+ messages in thread
From: Christian Brauner @ 2026-02-09 9:31 UTC (permalink / raw)
To: Nathan Chancellor; +Cc: Linus Torvalds, linux-fsdevel, linux-kernel
On Fri, Feb 06, 2026 at 11:11:14PM -0600, Nathan Chancellor wrote:
> On Fri, Feb 06, 2026 at 05:50:08PM +0100, Christian Brauner wrote:
> > David Laight (1):
> > fs: use min() or umin() instead of min_t()
>
> This needs a fix up for 32-bit builds:
>
> https://lore.kernel.org/20260113192243.73983-1-david.laight.linux@gmail.com/
>
> $ make -skj"$(nproc)" ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- mrproper allmodconfig fs/fuse/file.o
> In file included from <command-line>:
> In function 'fuse_wr_pages',
> inlined from 'fuse_perform_write' at fs/fuse/file.c:1347:27:
> include/linux/compiler_types.h:705:45: error: call to '__compiletime_assert_508' declared with attribute error: min(((pos + len - 1) >> 12) - (pos >> 12) + 1, max_pages) signedness error
> 705 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
> | ^
> include/linux/compiler_types.h:686:25: note: in definition of macro '__compiletime_assert'
> 686 | prefix ## suffix(); \
> | ^~~~~~
> include/linux/compiler_types.h:705:9: note: in expansion of macro '_compiletime_assert'
> 705 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
> | ^~~~~~~~~~~~~~~~~~~
> include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
> 39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
> | ^~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:93:9: note: in expansion of macro 'BUILD_BUG_ON_MSG'
> 93 | BUILD_BUG_ON_MSG(!__types_ok(ux, uy), \
> | ^~~~~~~~~~~~~~~~
> include/linux/minmax.h:98:9: note: in expansion of macro '__careful_cmp_once'
> 98 | __careful_cmp_once(op, x, y, __UNIQUE_ID(x_), __UNIQUE_ID(y_))
> | ^~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:105:25: note: in expansion of macro '__careful_cmp'
> 105 | #define min(x, y) __careful_cmp(min, x, y)
> | ^~~~~~~~~~~~~
> fs/fuse/file.c:1326:16: note: in expansion of macro 'min'
> 1326 | return min(((pos + len - 1) >> PAGE_SHIFT) - (pos >> PAGE_SHIFT) + 1,
> | ^~~
>
> David sent another patch before that one (though it does not look like
> you were explicitly sent that one). Arnd also sent one.
>
> https://lore.kernel.org/20251216141647.13911-1-david.laight.linux@gmail.com/
> https://lore.kernel.org/20251223215442.720828-1-arnd@kernel.org/
Huh, I didn't not see the mails and they're from 23rd December. Maybe
they got lost during the holidays. Sorry about that. Thanks for
reporting this. Linus, would you mind applying:
https://lore.kernel.org/all/20251223215442.720828-1-arnd@kernel.org
directly? Otherwise I can reassemble the pull request and resend. Let me
know what you prefer.
^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [GIT PULL 12/12 for v7.0] vfs misc
2026-02-06 16:50 ` [GIT PULL 12/12 for v7.0] vfs misc Christian Brauner
2026-02-07 5:11 ` Nathan Chancellor
@ 2026-02-10 0:50 ` pr-tracker-bot
1 sibling, 0 replies; 31+ messages in thread
From: pr-tracker-bot @ 2026-02-10 0:50 UTC (permalink / raw)
To: Christian Brauner
Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel
The pull request you sent on Fri, 6 Feb 2026 17:50:08 +0100:
> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.misc
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/9e355113f02be17db573d579515dee63621b7c8b
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 31+ messages in thread
* [GIT PULL 13/12 for v7.0] kernel misc
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (11 preceding siblings ...)
2026-02-06 16:50 ` [GIT PULL 12/12 for v7.0] vfs misc Christian Brauner
@ 2026-02-16 12:29 ` Christian Brauner
2026-02-16 22:11 ` pr-tracker-bot
2026-02-16 12:55 ` [GIT PULL 14/12 for v7.0] vfs misc 2 Christian Brauner
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-16 12:29 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
as announced in [1] this is one of pull requests that was delayed.
/* Summary */
- pid: introduce task_ppid_vnr() helper
- Revert "pid: make __task_pid_nr_ns(ns => NULL) safe for zombie callers"
- ipc: Add SPDX license id to mqueue.c
- pidfs: convert rb-tree to rhashtable
Mateusz reported performance penalties during task creation because
pidfs uses pidmap_lock to add elements into the rbtree. Switch to an
rhashtable to have separate fine-grained locking and to decouple from
pidmap_lock moving all heavy manipulations outside of it.
Also move inode allocation outside of pidmap_lock. With this there's
nothing happening for pidfs under pidmap_lock.
- pid: reorder fields in pid_namespace to reduce false sharing
Link: https://lore.kernel.org/20260206-vfs-v70-7df0b750d594@brauner [1]
/* 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 6cbfdf89470ef3c2110f376a507d135e7a7a7378:
posix_acl: make posix_acl_to_xattr() alloc the buffer (2026-01-16 10:51:12 +0100)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-7.0-rc1.misc
for you to fetch changes up to 3673dd3c7dc1f37baf0448164d323d7c7a44d1da:
Merge patch series "Revert "pid: make __task_pid_nr_ns(ns => NULL) safe for zombie callers"" (2026-02-10 11:39:31 +0100)
----------------------------------------------------------------
kernel-7.0-rc1.misc
Please consider pulling these changes from the signed kernel-7.0-rc1.misc tag.
Thanks!
Christian
----------------------------------------------------------------
Christian Brauner (2):
pidfs: convert rb-tree to rhashtable
Merge patch series "Revert "pid: make __task_pid_nr_ns(ns => NULL) safe for zombie callers""
Mateusz Guzik (2):
pid: reorder fields in pid_namespace to reduce false sharing
pidfs: implement ino allocation without the pidmap lock
Oleg Nesterov (2):
Revert "pid: make __task_pid_nr_ns(ns => NULL) safe for zombie callers"
pid: introduce task_ppid_vnr() helper
Tim Bird (1):
ipc: Add SPDX license id to mqueue.c
fs/pidfs.c | 174 +++++++++++++++++++++++-------------------
include/linux/pid.h | 9 ++-
include/linux/pid_namespace.h | 14 ++--
include/linux/pidfs.h | 3 +-
ipc/mqueue.c | 3 +-
kernel/pid.c | 15 ++--
6 files changed, 121 insertions(+), 97 deletions(-)
^ permalink raw reply [flat|nested] 31+ messages in thread* [GIT PULL 14/12 for v7.0] vfs misc 2
2026-02-06 16:49 [GIT PULL 00/12 for v7.0] v7.0 Christian Brauner
` (12 preceding siblings ...)
2026-02-16 12:29 ` [GIT PULL 13/12 for v7.0] kernel misc Christian Brauner
@ 2026-02-16 12:55 ` Christian Brauner
2026-02-16 22:11 ` pr-tracker-bot
13 siblings, 1 reply; 31+ messages in thread
From: Christian Brauner @ 2026-02-16 12:55 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel
Hey Linus,
as announced in [1] this is one of pull requests that was delayed.
/* Summary */
This contains the second and last batch of misc vfs changes.
Features:
- Optimize close_range() from O(range size) to O(active FDs) by using
find_next_bit() on the open_fds bitmap instead of linearly scanning
the entire requested range. This is a significant improvement for
large-range close operations on sparse file descriptor tables.
- Add FS_XFLAG_VERITY file attribute for fs-verity files, retrievable
via FS_IOC_FSGETXATTR and file_getattr(). The flag is read-only. Add
tracepoints for fs-verity enable and verify operations, replacing the
previously removed debug printk's.
- Prevent nfsd from exporting special kernel filesystems like pidfs and
nsfs. These filesystems have custom ->open() and ->permission() export
methods that are designed for open_by_handle_at(2) only and are
incompatible with nfsd. Update the exportfs documentation accordingly.
Fixes:
- Fix KMSAN uninit-value in ovl_fill_real() where strcmp() was used on a
non-null-terminated decrypted directory entry name from fscrypt. This
triggered on encrypted lower layers when the decrypted name buffer
contained uninitialized tail data. The fix also adds VFS-level
name_is_dot(), name_is_dotdot(), and name_is_dot_dotdot() helpers,
replacing various open-coded "." and ".." checks across the tree.
- Fix read-only fsflags not being reset together with xflags in
vfs_fileattr_set(). Currently harmless since no read-only xflags
overlap with flags, but this would cause inconsistencies for any future
shared read-only flag.
- Return -EREMOTE instead of -ESRCH from PIDFD_GET_INFO when the target
process is in a different pid namespace. This lets userspace
distinguish "process exited" from "process in another namespace",
matching glibc's pidfd_getpid() behavior.
Cleanups:
- Use C-string literals in the Rust seq_file bindings, replacing the
kernel::c_str!() macro (available since Rust 1.77).
- Fix typo in d_walk_ret enum comment, add porting notes for the
readlink_copy() calling convention change.
Link: https://lore.kernel.org/20260206-vfs-v70-7df0b750d594@brauner [1]
/* 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
================================
This has a merge conflict with my kernel-7.0-rc1.misc pull request:
diff --cc Documentation/filesystems/porting.rst
index 79e2c3008289,bd4128ccbb67..000000000000
--- a/Documentation/filesystems/porting.rst
+++ b/Documentation/filesystems/porting.rst
@@@ -1336,18 -1339,8 +1336,28 @@@ in-tree filesystems have done)
**mandatory**
+The ->setlease() file_operation must now be explicitly set in order to provide
+support for leases. When set to NULL, the kernel will now return -EINVAL to
+attempts to set a lease. Filesystems that wish to use the kernel-internal lease
+implementation should set it to generic_setlease().
+
+---
+
+**mandatory**
+
+fs/namei.c primitives that consume filesystem references (do_renameat2(),
+do_linkat(), do_symlinkat(), do_mkdirat(), do_mknodat(), do_unlinkat()
+and do_rmdir()) are gone; they are replaced with non-consuming analogues
+(filename_renameat2(), etc.)
+Callers are adjusted - responsibility for dropping the filenames belongs
+to them now.
++
++---
++
++**mandatory**
++
+ readlink_copy() now requires link length as the 4th argument. Said length needs
+ to match what strlen() would return if it was ran on the string.
+
+ However, if the string is freely accessible for the duration of inode's
+ lifetime, consider using inode_set_cached_link() instead.
The following changes since commit 6cbfdf89470ef3c2110f376a507d135e7a7a7378:
posix_acl: make posix_acl_to_xattr() alloc the buffer (2026-01-16 10:51:12 +0100)
are available in the Git repository at:
git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.misc.2
for you to fetch changes up to dedfae78f00960d703badc500422d10e1f12b2bc:
fs: add porting notes about readlink_copy() (2026-02-03 15:17:34 +0100)
----------------------------------------------------------------
vfs-7.0-rc1.misc.2
Please consider pulling these changes from the signed vfs-7.0-rc1.misc.2 tag.
Thanks!
Christian
----------------------------------------------------------------
Amir Goldstein (4):
fs: add helpers name_is_dot{,dot,_dotdot}
ovl: use name_is_dot* helpers in readdir code
exportfs: clarify the documentation of open()/permission() expotrfs ops
nfsd: do not allow exporting of special kernel filesystems
Andrey Albershteyn (3):
fs: reset read-only fsflags together with xflags
fs: add FS_XFLAG_VERITY for fs-verity files
fsverity: add tracepoints
Chelsy Ratnawat (1):
fs: dcache: fix typo in enum d_walk_ret comment
Christian Brauner (2):
Merge patch series "name_is_dot* cleanup"
Merge patch series "Add traces and file attributes for fs-verity"
Luca Boccassi (1):
pidfs: return -EREMOTE when PIDFD_GET_INFO is called on another ns
Mateusz Guzik (1):
fs: add porting notes about readlink_copy()
Qiliang Yuan (1):
fs/file: optimize close_range() complexity from O(N) to O(Sparse)
Qing Wang (1):
ovl: Fix uninit-value in ovl_fill_real
Tamir Duberstein (1):
rust: seq_file: replace `kernel::c_str!` with C-Strings
Documentation/filesystems/fsverity.rst | 16 ++++
Documentation/filesystems/porting.rst | 10 +++
MAINTAINERS | 1 +
fs/crypto/fname.c | 2 +-
fs/dcache.c | 10 +--
fs/ecryptfs/crypto.c | 2 +-
fs/exportfs/expfs.c | 3 +-
fs/f2fs/dir.c | 2 +-
fs/f2fs/hash.c | 2 +-
fs/file.c | 10 ++-
fs/file_attr.c | 10 ++-
fs/namei.c | 2 +-
fs/nfsd/export.c | 8 +-
fs/overlayfs/readdir.c | 41 ++++-----
fs/pidfs.c | 2 +-
fs/smb/server/vfs.c | 2 +-
fs/verity/enable.c | 4 +
fs/verity/fsverity_private.h | 2 +
fs/verity/init.c | 1 +
fs/verity/verify.c | 9 ++
include/linux/exportfs.h | 21 ++++-
include/linux/fileattr.h | 6 +-
include/linux/fs.h | 14 +++-
include/trace/events/fsverity.h | 146 +++++++++++++++++++++++++++++++++
include/uapi/linux/fs.h | 1 +
rust/kernel/seq_file.rs | 4 +-
26 files changed, 274 insertions(+), 57 deletions(-)
create mode 100644 include/trace/events/fsverity.h
^ permalink raw reply [flat|nested] 31+ messages in thread