public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL 00/12 for v7.0] v7.0
@ 2026-02-06 16:49 Christian Brauner
  2026-02-06 16:49 ` [GIT PULL 01/12 for v7.0] vfs rust Christian Brauner
                   ` (13 more replies)
  0 siblings, 14 replies; 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,

This is the batch of pull requests for the v7.0 merge window.

This cycle has a few infrastructure pieces worth highlighting.

There's nullfs, a completely catatonic minimal pseudo filesystem that
serves as the immutable root of the mount hierarchy. The mutable rootfs
(tmpfs/ramfs) is mounted on top of it. This allows userspace to simply
pivot_root() in the initramfs without the traditional switch_root
workarounds. nullfs is enabled unconditionally. If we see any real
regression we'll hide it behind a boot option. There's an easy to revert
change to make that happen. It will also serve as a foundation for
creating completely empty mount namespaces in a future cycle.

Along with nullfs, we remove the deprecated linuxrc-based initrd code
path is removed. It was deprecated in 2020 and this completes the
removal. Initramfs is entirely unaffected. The non-linuxrc initrd path
(root=/dev/ram0) is preserved but now carries a deprecation warning
targeting January 2027 removal.

There a new OPEN_TREE_NAMESPACE extension for 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 and
returns a mount namespace fd instead of a detached mount fd —
functioning as a combined unshare(CLONE_NEWNS) + pivot_root() in a
single syscall. Using it for container creation brings about a 40%
increase in throughput.

We added a new STATMOUNT_BY_FD extension to statmount(). It now accepts
a file descriptor as a parameter, returning mount information for the
mount the fd resides on, including detached mounts.

With every in-tree filesystem now converted to the new mount API, we can
remove all the legacy code in fs_context.c for unconverted filesystems -
about 280 lines including legacy_init_fs_context() and friends. The
mount(2) syscall path for userspace is untouched.

The timestamp update path is reworked to propagate IOCB_NOWAIT through
->update_time so that filesystems which can update timestamps without
blocking are no longer penalized. Previously, file_update_time_flags()
unconditionally returned -EAGAIN when IOCB_NOWAIT was set, making
non-blocking direct writes impossible on essentially all filesystems.
XFS implements non-blocking timestamp updates as the first user.

Lease support is changed to require explicit opt-in. Previously
kernel_setlease() fell through to generic_setlease() when a filesystem
did not define ->setlease(), silently granting lease support to every
filesystem. The new default returns -EINVAL when ->setlease is NULL.
With the new default simple_nosetlease() becomes redundant and is
removed.

There's a new generic fserror infrastructure for reporting metadata
corruption and file I/O errors to userspace via fsnotify. EFSCORRUPTED
and EUCLEAN are promoted from private per-filesystem definitions to
canonical errno.h values across all architectures. A new
super_operations::report_error callback lets filesystem drivers respond
to file I/O errors themselves.

knfsd can now use atomic_open() via dentry_create(), eliminating the
racy vfs_create() + vfs_open() sequence for combined exclusive create
and open operations.

Btrfs drops its private copies of may_delete() and may_create() in
favor of newly exported may_delete_dentry() and may_create_dentry(),
removing ~70 lines of duplicated code that had drifted out of sync with
the VFS originals.

On the scalability side, pid allocation is reworked to only take
pidmap_lock once instead of twice during alloc_pid(), improving thread
creation/teardown throughput by 10-16%. File lock presence is tracked
via a flag in ->i_opflags instead of reading ->i_flctx, avoiding
false-sharing on open/close hot paths with a measured 4-16% improvement.
A redundant DCACHE_MANAGED_DENTRY check in __follow_mount_rcu() that
caused a 100% mispredicted branch is removed.

Smaller items include minix superblock validation hardening (syzbot),
iomap plumbing for erofs page cache sharing preliminaries, a fix for
invalid folio access after folio_end_read(), posix_acl_to_xattr() now
allocating the buffer internally since every caller was doing it anyway,
chardev cleanup API conversion, the start of deprecating legacy BSD
process accounting (acct(2)), Rust VFS helper annotations for LTO
inlining, and the usual collection of kernel-doc fixes and cleanups.

Note that I will have some pull requests coming in during the second
half of the merge window as linux-next had to temporarily drop them last
week when a selftest build error happened. So I'm delaying them a bit.

Thanks!
Christian

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [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 01/12 for v7.0] vfs rust
  2026-02-06 16:49 ` [GIT PULL 01/12 for v7.0] vfs rust Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:49:57 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.rust

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/4b6c6bc6fab51684cc129f91211734f87db6b065

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

* Re: [GIT PULL 02/12 for v7.0] vfs initrd
  2026-02-06 16:49 ` [GIT PULL 02/12 for v7.0] vfs initrd Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:49:58 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.initrd

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/996812c453cafa042f2e674738dbf8fa495661f3

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

* Re: [GIT PULL 03/12 for v7.0] vfs nonblocking_timestamps
  2026-02-06 16:49 ` [GIT PULL 03/12 for v7.0] vfs nonblocking_timestamps Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:49:59 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.nonblocking_timestamps

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/74554251dfc9374ebf1a9dfc54d6745d56bb9265

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

* Re: [GIT PULL 04/12 for v7.0] vfs leases
  2026-02-06 16:50 ` [GIT PULL 04/12 for v7.0] vfs leases Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:00 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.leases

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/aa2a0fcd4c7b9801be32482755a450a80a3c36a2

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

* Re: [GIT PULL 05/12 for v7.0] vfs fserror
  2026-02-06 16:50 ` [GIT PULL 05/12 for v7.0] vfs fserror Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:01 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.fserror

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/a48373e7d35a89f6f9b39f0d0da9bf158af054ee

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

* Re: [GIT PULL 06/12 for v7.0] vfs btrfs
  2026-02-06 16:50 ` [GIT PULL 06/12 for v7.0] vfs btrfs Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:02 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.btrfs

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/6124fa45e2d919eeb9fc2d6675f5824b44e344b0

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

* Re: [GIT PULL 07/12 for v7.0] vfs minix
  2026-02-06 16:50 ` [GIT PULL 07/12 for v7.0] vfs minix Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:03 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.minix

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/7e01a69f5c4f2a6af2d4cd1cc46d48efdeb98230

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

* Re: [GIT PULL 08/12 for v7.0] vfs nullfs
  2026-02-06 16:50 ` [GIT PULL 08/12 for v7.0] vfs nullfs Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:04 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.nullfs

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c84bb79f70c634a95929f21c14340ab2078d7977

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

* Re: [GIT PULL 09/12 for v7.0] vfs atomic_open
  2026-02-06 16:50 ` [GIT PULL 09/12 for v7.0] vfs atomic_open Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:05 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.atomic_open

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/8113b3998d5c96aca885b967e6aa47e428ebc632

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

* Re: [GIT PULL 10/12 for v7.0] vfs namespace
  2026-02-06 16:50 ` [GIT PULL 10/12 for v7.0] vfs namespace Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:06 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.namespace

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/157d3d6efd5a58466d90be3a134f9667486fe6f9

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

* Re: [GIT PULL 11/12 for v7.0] vfs iomap
  2026-02-06 16:50 ` [GIT PULL 11/12 for v7.0] vfs iomap Christian Brauner
@ 2026-02-10  0:50   ` pr-tracker-bot
  0 siblings, 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:07 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.iomap

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/3304b3fedddfb1357c7f9e25526b5a7899ee1f13

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

* 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

* Re: [GIT PULL 13/12 for v7.0] kernel misc
  2026-02-16 12:29 ` [GIT PULL 13/12 for v7.0] kernel misc Christian Brauner
@ 2026-02-16 22:11   ` pr-tracker-bot
  0 siblings, 0 replies; 31+ messages in thread
From: pr-tracker-bot @ 2026-02-16 22:11 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Mon, 16 Feb 2026 13:29:20 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/kernel-7.0-rc1.misc

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/543b9b63394ee67ecf5298fe42cbe65b21a16eac

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

* Re: [GIT PULL 14/12 for v7.0] vfs misc 2
  2026-02-16 12:55 ` [GIT PULL 14/12 for v7.0] vfs misc 2 Christian Brauner
@ 2026-02-16 22:11   ` pr-tracker-bot
  0 siblings, 0 replies; 31+ messages in thread
From: pr-tracker-bot @ 2026-02-16 22:11 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Mon, 16 Feb 2026 13:55:40 +0100:

> git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.0-rc1.misc.2

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/45a43ac5acc90b8f4835eea92692f620e561a06b

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

end of thread, other threads:[~2026-02-16 22:11 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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-10  0:50   ` pr-tracker-bot
2026-02-06 16:49 ` [GIT PULL 02/12 for v7.0] vfs initrd 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
2026-02-10  0:50   ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 04/12 for v7.0] vfs leases 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
2026-02-10  0:50   ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 06/12 for v7.0] vfs btrfs 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
2026-02-10  0:50   ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 08/12 for v7.0] vfs nullfs 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
2026-02-10  0:50   ` pr-tracker-bot
2026-02-06 16:50 ` [GIT PULL 10/12 for v7.0] vfs namespace 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
2026-02-10  0:50   ` pr-tracker-bot
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
2026-02-16 12:29 ` [GIT PULL 13/12 for v7.0] kernel misc 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
2026-02-16 22:11   ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox