mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [GIT PULL 00/18 for v7.3] v7.3
@ 2026-08-14 13:07 Christian Brauner
  2026-08-14 13:10 ` [GIT PULL 01/18 for v7.3] ipc misc Christian Brauner
                   ` (17 more replies)
  0 siblings, 18 replies; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:07 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.3 merge window.

We remove three subsystems taking about five thousand lines with them.
These are very old filesystem drivers. EFS, the read-only SGI IRIX
format that predates XFS, has been orphaned and goes. freevxfs goes too.
Cachefiles ondemand mode also goes out now that EROFS over fscache,
its only in-tree user, has been removed.

I've sent the pull request that makes kernel threads stop sharing
filesystem state with userspace which I've kept in -next continously for
multiple cycles. So kernel threads no longer share filesystem state with
PID 1. Since the beginning, init_task, PID 1 and every kthread have
shared one fs_struct, which is why pivot_root() rewrites the fs_struct
of all kthreads and why userspace can move the ground out from under the
kernel.

PID 1 now gets its own fs_struct and kthreads are anchored in a private
nullfs instance that cannot be mounted on and cannot be used to follow
other mounts. So path lookup from a kthread fails by default. Anything
that legitimately needs to look something up in init's filesystem state
must opt-in explicitly via scoped_with_init_fs().

This also sees the addition of a minimal new pseudofs called "failfs"
which came out of some requests to shed fs state for lookup purposes
without having to resort to any namespace shenanigans. In failfs every
operation fails and is the counterpart to nullfs. Its root cannot be
opened at all. A single instance is mounted during early boot and
belongs to no mount namespace. This lets a task shed its filesystem
state completely. With its root or working directory in failfs it must
anchor every lookup at an explicit file descriptor. failfs is reachable
through FD_FAILFS_ROOT which is understood by fchdir() and by the new
fchroot() system call.

Overlayfs learns to support idmapped mounts itself so a whole merged
tree can be shown under a different ownership.

We now make it possible to share a block device between multiple
superblocks. erofs can mount read-only blob devices shared between many
superblocks. Because we only tracked a single superblock a freeze, thaw,
removal or sync on such a device was never propagated to all the
superblocks using it. And there was no way to find them. So add an
efficient table to lookup all superblocks using a given block device. A
bunch of pre-existing fixes fell out of this work as well.

Another chunk is iomap's conversion to a single ->iomap_next() callback
which finishes the move to an iterator model. Every iomap operation
drove its iteration through a struct iomap_ops holding ->iomap_begin()
and ->iomap_end(). That means every step of every iteration is an
indirect call. The work this cycle collapses both into one
->iomap_next() callback that finishes the previous mapping and produces
the next one. This lets callers inline the iteration loop and pass its
->iomap_next() as a compile time constant. That means the compiler can
turn it into a direct and hence inlineable call.

We've also changed sync_inode_metadata() and
writeback_single_inode(). They now persist not only the inode but all
metadata associated with it. A new .sync_inode_metadata superblock
operation is called from __writeback_single_inode(). Alongside it a new
I_METADATA_WRITEBACK state flag is added. So filesystems no longer need
their own mmb_fsync() implementations and can just use simple_fsync().
All metadata is now written for IS_SYNC and IS_DIRSYNC inodes. Races
where several fsyncs raced and mmb_sync() could return before all
buffers were really persisted are fixed since I_SYNC now serializes
properly. The I_METADATA_WRITEBACK scheme also fixes the case where a
WB_SYNC_NONE writeback landing between write(2) and fsync(2) left
fsync(2) failing to persist the inode. That problem is not specific to
filesystems using the generic metadata bh tracking, and the ones that do
not are left alone.

lookup_open() is refactored so that mnt_want_write(), the parent
locking and the delegated_inode retry loop live inside it. nfsd gets a
vfs_lookup_open() to reuse and thus stops open-coding the helper.
audit_inode_child() is now also called on failure there. This matches
what vfs_create() and vfs_mkdir() have always done. And the excl
argument to ->create() is removed.

binfmt_misc sees the largest rework. I've upstreamed a bunch of fixes
you merged during this cycle already. They fell out of this work (two
write access imbalances on interpreter files, an out-of-bounds flag scan
when a register string uses a flag character as its delimiter, and an
'F' entry that could pin its own instance). The new work adds support
for having dynamic policies for how to execute binaries. E.g., this
allows for the interpreter to be computed per binary. That is what
relocatable, hermetic binaries in Nix-style store layouts have needed,
where the right dynamic loader can only be determined relative to the
location of the binary itself and neither PT_INTERP nor a fixed
interpreter string can express it. But the mechanism allows for generic
policies to be expressed.

Thanks!
Christian

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

* [GIT PULL 01/18 for v7.3] ipc misc
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
@ 2026-08-14 13:10 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:11 ` [GIT PULL 02/18 for v7.3] kernel misc Christian Brauner
                   ` (16 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:10 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This rejects mq_notify() with a zero signal number.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

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

for you to fetch changes up to 1184f5e8200902cae3e098ac68d8600ecdf6fe28:

  mqueue: reject mq_notify with signo 0 (2026-06-29 10:29:28 +0200)

----------------------------------------------------------------
ipc-7.3-rc1.misc

Please consider pulling these changes from the signed ipc-7.3-rc1.misc tag.

Thanks!
Christian

----------------------------------------------------------------
Yi Xie (1):
      mqueue: reject mq_notify with signo 0

 ipc/mqueue.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

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

* [GIT PULL 02/18 for v7.3] kernel misc
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
  2026-08-14 13:10 ` [GIT PULL 01/18 for v7.3] ipc misc Christian Brauner
@ 2026-08-14 13:11 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:11 ` [GIT PULL 03/18 for v7.3] vfs binfmt Christian Brauner
                   ` (15 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:11 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

- fix coding style in the exit path

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

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

for you to fetch changes up to d7337cad4dbe6caf9535d3539daed353dd425dc1:

  kernel: exit: fix coding style missing spaces (2026-06-29 10:29:22 +0200)

----------------------------------------------------------------
kernel-7.3-rc1.misc

Please consider pulling these changes from the signed kernel-7.3-rc1.misc tag.

Thanks!
Christian

----------------------------------------------------------------
mingzhu wang (1):
      kernel: exit: fix coding style missing spaces

 kernel/exit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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

* [GIT PULL 03/18 for v7.3] vfs binfmt
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
  2026-08-14 13:10 ` [GIT PULL 01/18 for v7.3] ipc misc Christian Brauner
  2026-08-14 13:11 ` [GIT PULL 02/18 for v7.3] kernel misc Christian Brauner
@ 2026-08-14 13:11 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:11 ` [GIT PULL 04/18 for v7.3] vfs efs Christian Brauner
                   ` (14 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:11 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This contains a bunch of work for binfmt_misc. It fixes a bunch of old
bugs, reworks the locking, and then extends the format registry so a
binary type can be matched programmatically and its interpreter computed
per exec instead of being a fixed string recorded at registration time.

This allows nixos and other to e.g., implement relocatable binaries
meaning the interpreter/dynamic loader can be determined
programatically, say found relative to the binary. The mechanism is
flexible and can support other policies:

- Handler lookup is now an rcu walk. An exec that matches no binfmt_misc
  entry should now never writes to a shared cacheline.

- remove the VERBOSE_STATUS and USE_DEBUG compile time toggles

- convert the entry file to a seq_file which simplifies things quite a
  bit and kills a lot of custom logic

- make flags proper enums

- rename struct Node to binfmt_misc_entry

- allow entries to be removed with unlink(2)

- Add the ability to attach bpf programs to binfmt_misc entries so it's
  possible to dynamically choose the execution environment such as the
  loader or interpreter on a per binary basis.

  A handler is an instance of a binfmt_misc_ops struct_ops with a
  ->match() and a ->load() program. match() decides from the entry
  lookup walk whether the handler applies under the same
  registration-order. It can read file content as needed not only the
  prefetched 256 bytes in bprm->buf.

  load() then selects the interpreter and stages it through the new
  bpf_binprm_set_interp(), bpf_binprm_set_interp_arg() and
  bpf_binprm_set_flags() kfuncs.

  Handlers are published in a registry keyed by the registering task's
  user namespace and activated through the existing text interface with
  a new 'B' type carrying the handler name:

  echo ':origin:B::::nix:' > /proc/sys/fs/binfmt_misc/register

  The permission and namespacing model is unchanged. Activating a
  handler requires the same write access to an instance as any other
  registration. A container mounting its own instance escapes the host's
  entries exactly as before. The computed interpreter is opened with
  open_exec() under the caller's credentials and goes through full LSM
  vetting as the next binprm level. A program can only ever redirect the
  caller to something the caller could exec anyway.

- Two dispatch modes are added. So far the chosen interpreter owns the
  whole process identity (argv[0], /proc/pid/cmdline, /proc/self/exe 
  all name interpreter information). So relocatable find the dynamic
  linker instead. Also a binary passed to execveat() as an inaccessible
  O_CLOEXEC fd cannot run at all and gdb trips because AT_ENTRY and
  AT_PHDR do not match the exe file. So PIE symbols are unrelocated.

  This adds transparent dispatch which allows the interpreter to load
  the binary through AT_EXECFD and leaves the argument vector exactly as
  the caller built it and labels mm->exe_file and comm with the binary.
  It also raises the AT_FLAGS_TRANSPARENT_INTERP aux vector bit. The
  interpreter keeps control of mapping the binary.

  The second mode is loader substitution. This allows a binary to be
  executed natively and only the interpreter to be changed.

- Last, interpreters can be bound at registration time. Each interpreter
  is opened by its own write with the credentials the entry file was
  opened with. The program picks one per exec with
  bpf_binprm_select_interp(). Ucounts are used to properly account for
  pre-opened interpreters via
  /proc/sys/user/max_binfmt_misc_interpreters.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit b8206f516fe7cbe785cf44bf09c17c438d7c3cad:

  binfmt_misc: don't leak the user namespace when the mount fails (2026-07-28 15:51:25 +0200)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.binfmt

for you to fetch changes up to 68aabd01ddd26ced458a9e5716a640eaf8e4b7a6:

  Merge patch series "binfmt_misc: bound the interpreters an entry can pre-open" (2026-08-03 23:36:38 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.binfmt

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (67):
      binfmt_misc: convert entry list to an hlist
      binfmt_misc: use RCU for the handler lookup
      binfmt_misc: annotate racy accesses to ->enabled
      binfmt_misc: turn the entry bit numbers into a proper enum
      binfmt_misc: turn the entry behavior flags into an enum
      binfmt_misc: rename Node to struct binfmt_misc_entry
      binfmt_misc: remove the VERBOSE_STATUS toggle
      binfmt_misc: use print_hex_dump_debug() for the register debug output
      binfmt_misc: convert the entry file to seq_file
      binfmt_misc: factor out the entry matching
      binfmt_misc: rename load_binfmt_misc() to current_binfmt_misc()
      binfmt_misc: return errors directly in load_misc_binary()
      binfmt_misc: give the parse_command() results names
      binfmt_misc: factor out the entry removal
      binfmt_misc: simplify check_special_flags()
      binfmt_misc: use a flexible array member for the register string
      binfmt_misc: split the field parsing out of create_entry()
      binfmt_misc: use __free(kfree) in bm_register_write()
      binfmt_misc: assorted small cleanups
      binfmt_misc: include what is used
      binfmt_misc: allow removing entries via unlink(2)
      Merge patch series "binfmt_misc: write access fixes, RCU handler lookup and cleanups"
      exec: stash bpf-selected interpreter state in struct linux_binprm
      binfmt_misc: add binfmt_misc_ops bpf struct_ops
      binfmt_misc: let the entry lookup walk sleep
      binfmt_misc: wire up bpf-backed 'B' entries
      bpf: allow fs kfuncs for binfmt_misc_ops programs
      binfmt_misc: let bpf handlers pass an argument to the interpreter
      binfmt_misc: let a bpf handler choose the invocation flags per exec
      Merge patch series "binfmt_misc: bpf-backed binary type handlers"
      binfmt_misc: require an absolute interpreter path with 'C'
      docs, binfmt_misc: keep general usage out of the handler sections
      binfmt_misc: table-drive the register string flags
      binfmt_misc: normalize the per-exec invocation flags
      binfmt_misc: split out entry_open_interpreter() and build_interp_argv()
      exec: release the replaced file with do_close_execat()
      selftests/exec: convert the binfmt_misc bpf test to the kselftest harness
      exec: add AT_FLAGS_TRANSPARENT_INTERP
      exec: label mm->exe_file with the binary for a transparent dispatch
      binfmt_misc: add transparent interpreter dispatch
      binfmt_misc: add a static transparent flag 'T'
      binfmt_misc: let a bpf handler run the interpreter transparently
      selftests/exec: test the transparent binfmt_misc mode
      binfmt_misc: document the transparent identity contract
      exec: carry a PT_INTERP substitute in struct linux_binprm
      binfmt_elf: consume a stashed PT_INTERP substitute
      binfmt_elf_fdpic: consume a stashed PT_INTERP substitute
      binfmt_misc: add the 'L' loader substitution flag
      binfmt_misc: let a bpf handler request loader substitution
      selftests/exec: test binfmt_misc loader substitution
      binfmt_misc: document loader substitution
      Merge patch series "binfmt_misc: transparent interpreters and PT_INTERP loader substitution"
      binfmt_misc: let a register string create an entry disabled
      selftests/exec: check that a binfmt_misc instance cannot be pinned
      selftests/exec: let binfmt_flag_supported() return a bool
      selftests/exec: test registering an entry disabled
      binfmt_misc: document registering an entry disabled
      selftests/exec: share the bpf handler preconditions
      binfmt_misc: carry pre-opened interpreters in struct binfmt_misc_interp
      binfmt_misc: let a 'B' entry bind its interpreters
      selftests/exec: test interpreters bound to a 'B' entry
      binfmt_misc: document interpreters bound by a 'B' entry
      Merge patch series "binfmt_misc: bind interpreters to a bpf-backed entry"
      binfmt_misc: correctly account pre-opened interpreters
      selftests/exec: test the pre-opened interpreter limit
      binfmt_misc: document the pre-opened interpreter limit
      Merge patch series "binfmt_misc: bound the interpreters an entry can pre-open"

Farid Zakaria (1):
      selftests/exec: add binfmt_misc bpf-backed handler test

 Documentation/admin-guide/binfmt-misc.rst          |  246 ++-
 fs/Kconfig.binfmt                                  |   14 +
 fs/Makefile                                        |    1 +
 fs/binfmt_elf.c                                    |   10 +-
 fs/binfmt_elf_fdpic.c                              |   11 +-
 fs/binfmt_misc.c                                   | 1618 ++++++++++++++------
 fs/binfmt_misc_bpf.c                               |  434 ++++++
 fs/bpf_fs_kfuncs.c                                 |   28 +-
 fs/exec.c                                          |   88 +-
 include/linux/binfmt_misc.h                        |  113 ++
 include/linux/binfmts.h                            |   40 +-
 include/linux/user_namespace.h                     |    3 +
 include/uapi/linux/binfmts.h                       |    7 +
 kernel/ucount.c                                    |    6 +
 kernel/user.c                                      |    4 +-
 tools/testing/selftests/exec/.gitignore            |   11 +
 tools/testing/selftests/exec/Makefile              |   93 ++
 tools/testing/selftests/exec/binfmt_bind_interp.c  |   14 +
 tools/testing/selftests/exec/binfmt_bpf_app.c      |   12 +
 tools/testing/selftests/exec/binfmt_bpf_interp.c   |   15 +
 .../testing/selftests/exec/binfmt_loader_payload.c |  146 ++
 tools/testing/selftests/exec/binfmt_misc_bpf.c     |  638 ++++++++
 tools/testing/selftests/exec/binfmt_misc_common.h  |  315 ++++
 .../testing/selftests/exec/binfmt_misc_disabled.c  |  172 +++
 .../selftests/exec/binfmt_misc_interplimit.c       |  232 +++
 tools/testing/selftests/exec/binfmt_misc_loader.c  |  372 +++++
 tools/testing/selftests/exec/binfmt_misc_selfpin.c |  158 ++
 .../selftests/exec/binfmt_misc_transparent.c       |   95 ++
 .../selftests/exec/binfmt_transparent_interp.c     |  112 ++
 tools/testing/selftests/exec/bpf_interp.bpf.c      |   61 +
 tools/testing/selftests/exec/config                |   10 +
 tools/testing/selftests/exec/interp_bind.bpf.c     |   76 +
 tools/testing/selftests/exec/loader.bpf.c          |   56 +
 tools/testing/selftests/exec/nix_origin.bpf.c      |  224 +++
 tools/testing/selftests/exec/transparent.bpf.c     |   57 +
 35 files changed, 4969 insertions(+), 523 deletions(-)
 create mode 100644 fs/binfmt_misc_bpf.c
 create mode 100644 include/linux/binfmt_misc.h
 create mode 100644 tools/testing/selftests/exec/binfmt_bind_interp.c
 create mode 100644 tools/testing/selftests/exec/binfmt_bpf_app.c
 create mode 100644 tools/testing/selftests/exec/binfmt_bpf_interp.c
 create mode 100644 tools/testing/selftests/exec/binfmt_loader_payload.c
 create mode 100644 tools/testing/selftests/exec/binfmt_misc_bpf.c
 create mode 100644 tools/testing/selftests/exec/binfmt_misc_common.h
 create mode 100644 tools/testing/selftests/exec/binfmt_misc_disabled.c
 create mode 100644 tools/testing/selftests/exec/binfmt_misc_interplimit.c
 create mode 100644 tools/testing/selftests/exec/binfmt_misc_loader.c
 create mode 100644 tools/testing/selftests/exec/binfmt_misc_selfpin.c
 create mode 100644 tools/testing/selftests/exec/binfmt_misc_transparent.c
 create mode 100644 tools/testing/selftests/exec/binfmt_transparent_interp.c
 create mode 100644 tools/testing/selftests/exec/bpf_interp.bpf.c
 create mode 100644 tools/testing/selftests/exec/interp_bind.bpf.c
 create mode 100644 tools/testing/selftests/exec/loader.bpf.c
 create mode 100644 tools/testing/selftests/exec/nix_origin.bpf.c
 create mode 100644 tools/testing/selftests/exec/transparent.bpf.c

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

* [GIT PULL 04/18 for v7.3] vfs efs
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (2 preceding siblings ...)
  2026-08-14 13:11 ` [GIT PULL 03/18 for v7.3] vfs binfmt Christian Brauner
@ 2026-08-14 13:11 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:11 ` [GIT PULL 05/18 for v7.3] vfs failfs Christian Brauner
                   ` (13 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:11 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This removes the EFS filesystem, the read-only on-disk format SGI used
on IRIX before XFS.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

[1]: https://lore.kernel.org/linux-next/akaE4dbtwZthgqJc@sirena.org.uk

     This conflicts with the net-next tree in MAINTAINERS between commit
     eb56577ae9a5a ("ehea: remove the ehea driver") from the net-next tree and
     commit 969076f31bf63 ("efs: Remove EFS") from this tree. Both commits
     delete adjacent MAINTAINERS entries, so the conflict resolves by removing
     both the EHEA and the EFS FILESYSTEM blocks.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.efs

for you to fetch changes up to bf2fbbca5d49d07917236604837145ee9e662c41:

  Merge patch "efs: Remove EFS" (2026-06-29 10:28:52 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.efs

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (1):
      Merge patch "efs: Remove EFS"

Matthew Wilcox (Oracle) (1):
      efs: Remove EFS

 MAINTAINERS                    |   5 -
 fs/Kconfig                     |   1 -
 fs/Makefile                    |   1 -
 fs/efs/Kconfig                 |  16 --
 fs/efs/Makefile                |   8 -
 fs/efs/dir.c                   | 105 ------------
 fs/efs/efs.h                   | 144 ----------------
 fs/efs/file.c                  |  42 -----
 fs/efs/inode.c                 | 315 -----------------------------------
 fs/efs/namei.c                 | 120 --------------
 fs/efs/super.c                 | 368 -----------------------------------------
 fs/efs/symlink.c               |  50 ------
 include/linux/efs_vh.h         |  54 ------
 include/uapi/linux/efs_fs_sb.h |  63 -------
 14 files changed, 1292 deletions(-)
 delete mode 100644 fs/efs/Kconfig
 delete mode 100644 fs/efs/Makefile
 delete mode 100644 fs/efs/dir.c
 delete mode 100644 fs/efs/efs.h
 delete mode 100644 fs/efs/file.c
 delete mode 100644 fs/efs/inode.c
 delete mode 100644 fs/efs/namei.c
 delete mode 100644 fs/efs/super.c
 delete mode 100644 fs/efs/symlink.c
 delete mode 100644 include/linux/efs_vh.h
 delete mode 100644 include/uapi/linux/efs_fs_sb.h

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

* [GIT PULL 05/18 for v7.3] vfs failfs
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (3 preceding siblings ...)
  2026-08-14 13:11 ` [GIT PULL 04/18 for v7.3] vfs efs Christian Brauner
@ 2026-08-14 13:11 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:12 ` [GIT PULL 06/18 for v7.3] vfs fat Christian Brauner
                   ` (12 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:11 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

Add failfs and expose a FD_FAILFS_ROOT sentinenel. This allows userspace
to shed their filesystem state completely. A process with its root or
working directory in failfs must anchor every path lookup at an explicit
file descriptor. Absolute paths, absolute symlinks and AT_FDCWD-relative
lookups simply fail.

Failfs is the counterpart to nullfs. nullfs says adds a permanently
empty, immutable directory whose lookups fail with ENOENT but which can
be opened, read, stat'd and mounted upon. Failfs on the other hand fails
every operation. The root cannot be opened at all. A single instance is
mounted during early boot via kern_mount(), which makes it logically
distinct from every mount namespace.

This is accompanied by a new fchroot() system call which makes chrooting
via a file descriptor a first class concept. It's possible to chroot
into failfs as an unprivileged user provided the task has no new
privileges set.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit 1590cf0329716306e948a8fc29f1d3ee87d3989f:

  Linux 7.2-rc4 (2026-07-19 13:54:41 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.failfs

for you to fetch changes up to 1d38e750a389e919c1608dbc61cd5c93cd4915dc:

  Merge patch series "fs: add failfs" (2026-07-27 17:18:00 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.failfs

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (8):
      fs: add failfs
      fs: support FD_FAILFS_ROOT in fchdir()
      fs: add fchroot()
      fs: support FD_FAILFS_ROOT in fchroot()
      arch: hookup fchroot() system call
      selftests/filesystems: add failfs selftests
      Documentation: add failfs documentation
      Merge patch series "fs: add failfs"

 Documentation/filesystems/failfs.rst               |  73 +++
 Documentation/filesystems/index.rst                |   1 +
 arch/alpha/kernel/syscalls/syscall.tbl             |   1 +
 arch/arm/tools/syscall.tbl                         |   1 +
 arch/arm64/tools/syscall_32.tbl                    |   1 +
 arch/m68k/kernel/syscalls/syscall.tbl              |   1 +
 arch/microblaze/kernel/syscalls/syscall.tbl        |   1 +
 arch/mips/kernel/syscalls/syscall_n32.tbl          |   1 +
 arch/mips/kernel/syscalls/syscall_n64.tbl          |   1 +
 arch/mips/kernel/syscalls/syscall_o32.tbl          |   1 +
 arch/parisc/kernel/syscalls/syscall.tbl            |   1 +
 arch/powerpc/kernel/syscalls/syscall.tbl           |   1 +
 arch/s390/kernel/syscalls/syscall.tbl              |   1 +
 arch/sh/kernel/syscalls/syscall.tbl                |   1 +
 arch/sparc/kernel/syscalls/syscall.tbl             |   1 +
 arch/x86/entry/syscalls/syscall_32.tbl             |   1 +
 arch/x86/entry/syscalls/syscall_64.tbl             |   1 +
 arch/xtensa/kernel/syscalls/syscall.tbl            |   1 +
 fs/Makefile                                        |   2 +-
 fs/d_path.c                                        |   3 +-
 fs/failfs.c                                        | 166 ++++++
 fs/internal.h                                      |   4 +
 fs/namespace.c                                     |   1 +
 fs/open.c                                          |  51 +-
 include/linux/syscalls.h                           |   1 +
 include/uapi/asm-generic/unistd.h                  |   6 +-
 include/uapi/linux/fcntl.h                         |   1 +
 include/uapi/linux/magic.h                         |   1 +
 scripts/syscall.tbl                                |   1 +
 tools/include/uapi/asm-generic/unistd.h            |   6 +-
 tools/perf/arch/arm/entry/syscalls/syscall.tbl     |   1 +
 .../perf/arch/mips/entry/syscalls/syscall_n64.tbl  |   1 +
 tools/perf/arch/powerpc/entry/syscalls/syscall.tbl |   1 +
 tools/perf/arch/s390/entry/syscalls/syscall.tbl    |   1 +
 tools/perf/arch/sh/entry/syscalls/syscall.tbl      |   1 +
 tools/perf/arch/sparc/entry/syscalls/syscall.tbl   |   1 +
 tools/perf/arch/x86/entry/syscalls/syscall_32.tbl  |   1 +
 tools/perf/arch/x86/entry/syscalls/syscall_64.tbl  |   1 +
 tools/perf/arch/xtensa/entry/syscalls/syscall.tbl  |   1 +
 tools/scripts/syscall.tbl                          |   1 +
 tools/testing/selftests/Makefile                   |   1 +
 .../selftests/filesystems/failfs/.gitignore        |   2 +
 .../testing/selftests/filesystems/failfs/Makefile  |   5 +
 .../selftests/filesystems/failfs/failfs_test.c     | 585 +++++++++++++++++++++
 44 files changed, 931 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/filesystems/failfs.rst
 create mode 100644 fs/failfs.c
 create mode 100644 tools/testing/selftests/filesystems/failfs/.gitignore
 create mode 100644 tools/testing/selftests/filesystems/failfs/Makefile
 create mode 100644 tools/testing/selftests/filesystems/failfs/failfs_test.c

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

* [GIT PULL 06/18 for v7.3] vfs fat
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (4 preceding siblings ...)
  2026-08-14 13:11 ` [GIT PULL 05/18 for v7.3] vfs failfs Christian Brauner
@ 2026-08-14 13:12 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:12 ` [GIT PULL 07/18 for v7.3] vfs freevxfs Christian Brauner
                   ` (11 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This rejects names longer than NAME_MAX in msdos_format_name(). The VFS
only enforces PATH_MAX rather than the length of an individual
component. open() on such a path component reported success for a name
far longer than NAME_MAX.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.fat

for you to fetch changes up to 9d7ed813ee5ff0d469bd99630828ed6fdef4e8da:

  fat: reject name longer than NAME_MAX in msdos_format_name() (2026-06-30 13:01:05 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.fat

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

Thanks!
Christian

----------------------------------------------------------------
Zizhi Wo (1):
      fat: reject name longer than NAME_MAX in msdos_format_name()

 fs/fat/namei_msdos.c | 3 +++
 1 file changed, 3 insertions(+)

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

* [GIT PULL 07/18 for v7.3] vfs freevxfs
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (5 preceding siblings ...)
  2026-08-14 13:12 ` [GIT PULL 06/18 for v7.3] vfs fat Christian Brauner
@ 2026-08-14 13:12 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:12 ` [GIT PULL 08/18 for v7.3] vfs iomap Christian Brauner
                   ` (10 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This removes the freevxfs driver. Providing compatibility with
various old-school Unix systems from the 1990s was fun 25 years ago.
Today it mostly serves as fodder for automated bug checkers. There has
been only one known user and contributor in the last 15 years.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit 1590cf0329716306e948a8fc29f1d3ee87d3989f:

  Linux 7.2-rc4 (2026-07-19 13:54:41 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.freevxfs

for you to fetch changes up to a3ed4fcd04b95347ad04cf4409b394bb7fbd0c02:

  freevxfs: remove the driver (2026-07-31 15:23:44 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.freevxfs

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

Thanks!
Christian

----------------------------------------------------------------
Christoph Hellwig (1):
      freevxfs: remove the driver

 MAINTAINERS               |   6 -
 fs/Kconfig                |   1 -
 fs/Makefile               |   1 -
 fs/freevxfs/Kconfig       |  27 ----
 fs/freevxfs/Makefile      |   9 --
 fs/freevxfs/vxfs.h        | 257 ----------------------------------
 fs/freevxfs/vxfs_bmap.c   | 272 ------------------------------------
 fs/freevxfs/vxfs_dir.h    |  68 ---------
 fs/freevxfs/vxfs_extern.h |  49 -------
 fs/freevxfs/vxfs_fshead.c | 166 ----------------------
 fs/freevxfs/vxfs_fshead.h |  43 ------
 fs/freevxfs/vxfs_immed.c  |  53 -------
 fs/freevxfs/vxfs_inode.c  | 314 -----------------------------------------
 fs/freevxfs/vxfs_inode.h  | 169 ----------------------
 fs/freevxfs/vxfs_lookup.c | 273 ------------------------------------
 fs/freevxfs/vxfs_olt.c    | 105 --------------
 fs/freevxfs/vxfs_olt.h    | 120 ----------------
 fs/freevxfs/vxfs_subr.c   | 152 --------------------
 fs/freevxfs/vxfs_super.c  | 347 ----------------------------------------------
 19 files changed, 2432 deletions(-)
 delete mode 100644 fs/freevxfs/Kconfig
 delete mode 100644 fs/freevxfs/Makefile
 delete mode 100644 fs/freevxfs/vxfs.h
 delete mode 100644 fs/freevxfs/vxfs_bmap.c
 delete mode 100644 fs/freevxfs/vxfs_dir.h
 delete mode 100644 fs/freevxfs/vxfs_extern.h
 delete mode 100644 fs/freevxfs/vxfs_fshead.c
 delete mode 100644 fs/freevxfs/vxfs_fshead.h
 delete mode 100644 fs/freevxfs/vxfs_immed.c
 delete mode 100644 fs/freevxfs/vxfs_inode.c
 delete mode 100644 fs/freevxfs/vxfs_inode.h
 delete mode 100644 fs/freevxfs/vxfs_lookup.c
 delete mode 100644 fs/freevxfs/vxfs_olt.c
 delete mode 100644 fs/freevxfs/vxfs_olt.h
 delete mode 100644 fs/freevxfs/vxfs_subr.c
 delete mode 100644 fs/freevxfs/vxfs_super.c

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

* [GIT PULL 08/18 for v7.3] vfs iomap
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (6 preceding siblings ...)
  2026-08-14 13:12 ` [GIT PULL 07/18 for v7.3] vfs freevxfs Christian Brauner
@ 2026-08-14 13:12 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:12 ` [GIT PULL 09/18 for v7.3] vfs kfunc Christian Brauner
                   ` (9 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

The bulk of this is the conversion of iomap to a single ->iomap_next()
callback and thus finishing the move to an iterator model.

Every iomap operation drove its iteration through a struct iomap_ops
holding ->iomap_begin() and ->iomap_end(). iomap_iter() only ever sees
those as pointers. That means every step of every iteration is an
indirect call.

This collapses both into one ->iomap_next() callback that
finishes the previous mapping and produces the next one. This lets
callers inline the iteration loop and pass its ->iomap_next() as a
compile time constant. That means the compiler can turn it into a direct
and hence inlineable call.

This also allows future callers to express custom logic to drive the
iteration forward better. xfs, btrfs, ext4, ext2, erofs, f2fs, gfs2,
hpfs, fuse, exfat, zonefs, ntfs, ntfs3 and the block device
mapping are all converted. No functional changes are intended.

This also adds a simple direct I/O path for small reads. On Gen5 NVMe
the __iomap_dio_rw() dominates 4K random reads. The same single-core
io_uring poll mode workload reaches ~3.2M IOPS against the raw block
device but only ~1.92M through ext4 or XFS.

__iomap_dio_rw(), iomap_iter(), iomap_dio_bio_iter() and kfree() were at
the top of the profile. The new path is very lightweight if no special
behavior is requested. The bio comes from a dedicated bioset and laid
out so the whole request is a single cacheline aligned allocation.
Completion runs inline.

That takes ext4 from 1.92M to 2.19M IOPS in the original workload. fio
shows around:

* 4% at libaio queue depths of 64 and up
* around 5% for io_uring
* up to 10% for io_uring poll mode at depth 256

on both ext4 and xfs.

A few other patches:

- iomap_folio_mark_uptodate() lets a filesystem that writes
  into the page cache outside the iomap read and write paths keep
  iomap's internal uptodate bitmap in sync, which fuse needs for
  server-pushed notify stores before it can enable large folios;

- two fixes for iomap_bio_read_folio_range_sync(): a potential crash
  when device integrity behavior is changed and a missing bio_uninit().

- a folio batch release fix on iomap callback failures

- FGP_NOFS is dropped from iomap_get_folio()

- documentation fix

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

[1]: https://lore.kernel.org/linux-next/anMt1DKhBq-9Hk7h@sirena.org.uk
     https://lore.kernel.org/linux-next/CAJnrk1ZqzifYSFNg1tBNz15p2WBe+rMVfRT5yq=B+wCemLt+4g@mail.gmail.com

This conflicts with the ntfs tree in fs/ntfs/iomap.c between commit
9cf6ac617e8e9 ("ntfs: serialize resident iomap reads with mrec_lock") from
the ntfs tree and commit 7a7bf7551624f ("ntfs: convert iomap ops to
->iomap_next()") from this tree:

diff --cc fs/ntfs/iomap.c
index 73c50171285aa,d0964ac840d9f..0000000000000
--- a/fs/ntfs/iomap.c
+++ b/fs/ntfs/iomap.c
@@@ -283,22 -274,13 +283,24 @@@ static int ntfs_read_iomap_begin(struc
  		unsigned int flags, struct iomap *iomap, struct iomap *srcmap)
  {
  	return __ntfs_read_iomap_begin(inode, offset, length, flags, iomap,
 -			srcmap, true);
 +			srcmap, true, true);
  }
  
 -static DEFINE_IOMAP_ITER_NEXT(ntfs_read_iomap_next, ntfs_read_iomap_begin);
 +static int ntfs_read_iomap_end(struct inode *inode, loff_t pos, loff_t length,
 +		ssize_t written, unsigned int flags, struct iomap *iomap)
 +{
 +	struct ntfs_inode *base_ni = iomap->private;
 +
 +	if (base_ni)
 +		mutex_unlock(&base_ni->mrec_lock);
 +	return written;
 +}
 +
++static DEFINE_IOMAP_ITER_NEXT_END(ntfs_read_iomap_next, ntfs_read_iomap_begin,
++				  ntfs_read_iomap_end);
+ 
  const struct iomap_ops ntfs_read_iomap_ops = {
- 	.iomap_begin = ntfs_read_iomap_begin,
- 	.iomap_end = ntfs_read_iomap_end,
+ 	.iomap_next = ntfs_read_iomap_next,
  };
  
  /*

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

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

for you to fetch changes up to 9948bc9aa1c2e5e77ab989a8e5d5eec829e967d5:

  Merge patch series "fixes for iomap_bio_read_folio_range_sync" (2026-08-12 09:22:40 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.iomap

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

Thanks!
Christian

----------------------------------------------------------------
Benjamin Wu (1):
      docs: fix grammatical error in iomap docs

Brian Foster (1):
      iomap: release the folio batch on iomap callback failures

Christian Brauner (4):
      Merge patch series "iomap: add simple dio path for small direct I/O"
      Merge patch series "iomap/fuse: add helper to keep uptodate bitmap in sync"
      Merge patch series "iomap: convert to in-iter iomap_next() model"
      Merge patch series "fixes for iomap_bio_read_folio_range_sync"

Christoph Hellwig (4):
      iomap: decouple simple direct I/O reads from iomap_dio_rw
      iomap: use GFP_NOWAIT when application for iomap_dio_simple allocations
      iomap: don't free integrity payload that doesn't exist
      iomap: iomap_bio_read_folio_range_sync is missing a call to bio_uninit

Fengnan Chang (3):
      iomap: factor out iomap_dio_alignment helper
      iomap: pass error code to should_report_dio_fserror directly
      iomap: add simple dio path for small direct I/O

Joanne Koong (19):
      fuse: don't clear folio uptodate on writethrough errors
      iomap: add helper to mark folio uptodate
      fuse: use iomap helper to mark folio uptodate
      iomap: split iomap_iter() logic into iomap_iter_next()
      iomap: add ->iomap_next()
      xfs: convert iomap ops to ->iomap_next()
      btrfs: convert iomap ops to ->iomap_next()
      ntfs3: convert iomap ops to ->iomap_next()
      ntfs: convert iomap ops to ->iomap_next()
      ext4: convert iomap ops to ->iomap_next()
      erofs: convert iomap ops to ->iomap_next()
      zonefs: convert iomap ops to ->iomap_next()
      ext2: convert iomap ops to ->iomap_next()
      block: convert iomap ops to ->iomap_next()
      f2fs: convert iomap ops to ->iomap_next()
      gfs2: convert iomap ops to ->iomap_next()
      hpfs: convert iomap ops to ->iomap_next()
      fuse: convert iomap ops to ->iomap_next()
      exfat: convert iomap ops to ->iomap_next()

Matthew Wilcox (Oracle) (1):
      iomap: Remove FGP_NOFS from iomap_get_folio()

 Documentation/filesystems/iomap/design.rst |   2 +-
 block/fops.c                               |   4 +-
 fs/btrfs/direct-io.c                       |   6 +-
 fs/erofs/data.c                            |   6 +-
 fs/erofs/zmap.c                            |   5 +-
 fs/exfat/iomap.c                           |  10 +-
 fs/ext2/inode.c                            |   6 +-
 fs/ext4/ext4.h                             |   3 +
 fs/ext4/extents.c                          |   4 +-
 fs/ext4/file.c                             |   4 +-
 fs/ext4/inode.c                            |  10 +-
 fs/f2fs/data.c                             |   4 +-
 fs/fuse/dax.c                              |   6 +-
 fs/fuse/file.c                             |  24 +---
 fs/fuse/notify.c                           |   4 +-
 fs/fuse/virtio_fs.c                        |   3 +-
 fs/gfs2/bmap.c                             |   6 +-
 fs/hpfs/file.c                             |   4 +-
 fs/iomap/bio.c                             |   3 +-
 fs/iomap/buffered-io.c                     |   8 +-
 fs/iomap/direct-io.c                       | 190 +++++++++++++++++++++++++++--
 fs/iomap/iter.c                            | 128 ++++++++++---------
 fs/ntfs/iomap.c                            |  32 +++--
 fs/ntfs3/inode.c                           |   6 +-
 fs/xfs/xfs_file.c                          |  18 +--
 fs/xfs/xfs_iomap.c                         |  41 +++++--
 fs/xfs/xfs_iomap.h                         |   4 +
 fs/zonefs/file.c                           |   9 +-
 include/linux/iomap.h                      | 178 ++++++++++++++++++++++++---
 29 files changed, 569 insertions(+), 159 deletions(-)

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

* [GIT PULL 09/18 for v7.3] vfs kfunc
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (7 preceding siblings ...)
  2026-08-14 13:12 ` [GIT PULL 08/18 for v7.3] vfs iomap Christian Brauner
@ 2026-08-14 13:12 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:12 ` [GIT PULL 10/18 for v7.3] vfs kthread Christian Brauner
                   ` (8 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This adds a bpf_sock_read_xattr() kfunc so a BPF LSM program can read
a user.* extended attribute from a socket's sockfs inode locklessly.

userspace already uses user.* xattrs on sockets to implement socket rate
limiting and to tag sockets for other purposes such as a varlink
registry. There has been no efficient way for a BPF program to read
those labels back. With this a listening socket marked from userspace
with fsetxattr() can be read back during bind or connect and acted upon
on the connecting socket. That lets userspace mark sockets and later
rediscover them or implement policy on them.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

This conflicts with commit 3f8c65b06fafc ("bpf: have
bpf_real_data_inode() take a struct file") in fs/bpf_fs_kfuncs.c. That
commit renamed bpf_real_inode() to bpf_real_data_inode() and switched it
to take a struct file, while commit b4e124d168552 ("fs: Add
bpf_sock_read_xattr() kfunc to read socket xattrs") from this tree adds
a new kfunc immediately above it. Here's a proposed conflict resolution:

[1]: https://lore.kernel.org/linux-next/ak4zoqJsFCyOQXyh@sirena.org.uk

diff --cc fs/bpf_fs_kfuncs.c
index 5b7d03e4fc6d,9a4ea5c9b0c9..6cb877267978
--- a/fs/bpf_fs_kfuncs.c
+++ b/fs/bpf_fs_kfuncs.c
@@@ -360,24 -360,52 +361,57 @@@ __bpf_kfunc int bpf_cgroup_read_xattr(s
  }
  #endif /* CONFIG_CGROUPS */
  
+ #ifdef CONFIG_NET
+ /**
+  * bpf_sock_read_xattr - read xattr of a socket's inode in sockfs
+  * @sock: socket to get xattr from
+  * @name__str: name of the xattr
+  * @value_p: output buffer of the xattr value
+  *
+  * Get xattr *name__str* of *sock* and store the output in *value_p*.
+  *
+  * For security reasons, only *name__str* with prefix "user." is allowed.
+  *
+  * Return: length of the xattr value on success, a negative value on error.
+  */
+ __bpf_kfunc int bpf_sock_read_xattr(struct socket *sock, const char *name__str,
+ 				    struct bpf_dynptr *value_p)
+ {
+ 	struct bpf_dynptr_kern *value_ptr = (struct bpf_dynptr_kern *)value_p;
+ 	u32 value_len;
+ 	void *value;
+ 
+ 	/* Only allow reading "user.*" xattrs */
+ 	if (strncmp(name__str, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN))
+ 		return -EPERM;
+ 
+ 	value_len = __bpf_dynptr_size(value_ptr);
+ 	value = __bpf_dynptr_data_rw(value_ptr, value_len);
+ 	if (!value)
+ 		return -EINVAL;
+ 
+ 	return sock_read_xattr(sock, name__str, value, value_len);
+ }
+ #endif /* CONFIG_NET */
+ 
  /**
 - * bpf_real_inode - get the real inode backing a dentry
 - * @dentry: dentry to resolve
 + * bpf_real_data_inode - get the real inode hosting a file's data
 + * @file: file to resolve
   *
 - * If the dentry is on a union/overlay filesystem, return the underlying, real
 - * inode that hosts the data.  Otherwise return the inode attached to the
 - * dentry itself.
 + * Resolve @file to the inode that hosts its data. For a regular file on a
 + * union/overlay filesystem this is the underlying (upper or lower) inode that
 + * stores the data, not the overlay inode.
   *
 - * Return: The real inode backing the dentry, or NULL for a negative dentry.
 + * Data resolution only applies to regular files. For a non-regular file (e.g.
 + * a device node, fifo or socket) on a union/overlay filesystem the overlay
 + * inode itself is returned; for any file on a non-union filesystem the inode
 + * attached to @file is returned.
 + *
 + * Return: The inode hosting @file's data, or NULL.
   */
 -__bpf_kfunc struct inode *bpf_real_inode(struct dentry *dentry)
 +__bpf_kfunc struct inode *bpf_real_data_inode(struct file *file)
  {
 -	return d_real_inode(dentry);
 +	return d_real_inode(file_dentry(file));
  }
  
  __bpf_kfunc_end_defs();
@@@ -390,28 -418,16 +424,31 @@@ BTF_ID_FLAGS(func, bpf_get_dentry_xattr
  BTF_ID_FLAGS(func, bpf_get_file_xattr, KF_SLEEPABLE)
  BTF_ID_FLAGS(func, bpf_set_dentry_xattr, KF_SLEEPABLE)
  BTF_ID_FLAGS(func, bpf_remove_dentry_xattr, KF_SLEEPABLE)
 -BTF_ID_FLAGS(func, bpf_real_inode, KF_SLEEPABLE | KF_RET_NULL)
 +BTF_ID_FLAGS(func, bpf_real_data_inode, KF_SLEEPABLE | KF_RET_NULL)
+ #ifdef CONFIG_NET
+ BTF_ID_FLAGS(func, bpf_sock_read_xattr, KF_RCU)
+ #endif
  BTF_KFUNCS_END(bpf_fs_kfunc_set_ids)
  
 +/* Side-effecting kfuncs that stay exclusive to LSM programs. */
 +BTF_SET_START(bpf_fs_kfunc_lsm_only_ids)
 +BTF_ID(func, bpf_set_dentry_xattr)
 +BTF_ID(func, bpf_remove_dentry_xattr)
 +BTF_SET_END(bpf_fs_kfunc_lsm_only_ids)
 +
  static int bpf_fs_kfuncs_filter(const struct bpf_prog *prog, u32 kfunc_id)
  {
 -	if (!btf_id_set8_contains(&bpf_fs_kfunc_set_ids, kfunc_id) ||
 -	    prog->type == BPF_PROG_TYPE_LSM)
 +	if (!btf_id_set8_contains(&bpf_fs_kfunc_set_ids, kfunc_id))
 +		return 0;
 +	if (prog->type == BPF_PROG_TYPE_LSM)
 +		return 0;
 +	if (prog->type != BPF_PROG_TYPE_STRUCT_OPS)
 +		return -EACCES;
 +	/* ->st_ops is unset during the cfg pass; enforced once it is set. */
 +	if (!prog->aux->st_ops)
 +		return 0;
 +	if (bpf_prog_is_binfmt_misc_ops(prog) &&
 +	    !btf_id_set_contains(&bpf_fs_kfunc_lsm_only_ids, kfunc_id))
  		return 0;
  	return -EACCES;
  }

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.kfunc

for you to fetch changes up to 8abc1c8badc11c859bb4ba43211611347e59c55c:

  Merge patch series "Add bpf_sock_read_xattr() kfunc to read socket xattrs" (2026-06-29 10:31:17 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.kfunc

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (3):
      fs: Add bpf_sock_read_xattr() kfunc to read socket xattrs
      selftests/bpf: Add test for bpf_sock_read_xattr() kfunc
      Merge patch series "Add bpf_sock_read_xattr() kfunc to read socket xattrs"

 fs/bpf_fs_kfuncs.c                                 | 37 ++++++++++++
 include/linux/net.h                                |  1 +
 net/socket.c                                       | 25 ++++++++
 tools/testing/selftests/bpf/bpf_experimental.h     |  3 +
 .../testing/selftests/bpf/prog_tests/sock_xattr.c  | 67 ++++++++++++++++++++++
 .../testing/selftests/bpf/progs/sock_read_xattr.c  | 54 +++++++++++++++++
 6 files changed, 187 insertions(+)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/sock_xattr.c
 create mode 100644 tools/testing/selftests/bpf/progs/sock_read_xattr.c

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

* [GIT PULL 10/18 for v7.3] vfs kthread
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (8 preceding siblings ...)
  2026-08-14 13:12 ` [GIT PULL 09/18 for v7.3] vfs kfunc Christian Brauner
@ 2026-08-14 13:12 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:13 ` [GIT PULL 11/18 for v7.3] vfs lookup Christian Brauner
                   ` (7 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This stops kernel threads from sharing filesystem state with userspace.
This work is about 3 cycles old and has been in -next for about that
time.

When the kernel boots init_task creates PID 1 and then kthreadd. From
that point every kthread and PID 1 share the same fs_struct. That is why
pivot_root() has to rewrite the fs_struct of all kthreads. The rewriting
exists so that kthreads can use init's filesystem state when they want
to. It also means userspace can move the ground out from under the
kernel.

PID 1 now gets a completely separate fs_struct. All kthreads are
anchored in a private SB_KERNMOUNT instance of nullfs that cannot be
mounted on and cannot be used to follow other mounts. Userspace init
can no longer affect kthread filesystem state and kthreads can no
longer affect userspace fs state without explicit opting in to that.

Path lookup from a kthread now fails by default. It makes it
deliberately hard to offload security sensitive operations into init's
filesystem state from a kthread.

Places that legitimately need to look something up there opt in through
the new scoped_with_init_fs() which temporarily overrides the caller's
fs_struct with init's. usermodehelpers remain the only kernel tasks that
genuinely share init's filesystem state, since they execute random
binaries in the root filesystem (excellent...).

The visible result is that /proc/2/root is a nullfs with an empty
mountinfo while /proc/1/root is the real root.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.kthread

for you to fetch changes up to b4343aebd3a4dd255b15b2e5b1363d6399da302f:

  initramfs_test: use test init/exit hooks to override init fs (2026-07-31 12:56:51 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.kthread

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (27):
      fs: add switch_fs_struct()
      fs: notice when init abandons fs sharing
      fs: add scoped_with_init_fs()
      fs: add real_fs to track task's actual fs_struct
      fs: make userspace_init_fs a dynamically-initialized pointer
      rnbd: use scoped_with_init_fs() for block device open
      crypto: ccp: use scoped_with_init_fs() for SEV file access
      scsi: target: use scoped_with_init_fs() for ALUA metadata
      scsi: target: use scoped_with_init_fs() for APTPL metadata
      btrfs: use scoped_with_init_fs() for update_dev_time()
      coredump: use scoped_with_init_fs() for coredump path resolution
      fs: use scoped_with_init_fs() for kernel_read_file_from_path_initns()
      ksmbd: use scoped_with_init_fs() for share path resolution
      ksmbd: use scoped_with_init_fs() for filesystem info path lookup
      ksmbd: use scoped_with_init_fs() for VFS path operations
      pnfs/blocklayout: use scoped_with_init_fs() for SCSI device lookup
      initramfs: use scoped_with_init_fs() for rootfs unpacking
      af_unix: use scoped_with_init_fs() for coredump socket lookup
      fs: stop sharing fs_struct between init_task and pid 1
      fs: add umh argument to struct kernel_clone_args
      devtmpfs: create private mount namespace
      nullfs: make nullfs multi-instance
      fs: start all kthreads in nullfs
      fs: stop rewriting kthread fs structs
      fs: stop rewriting paths for PF_EXITING | PF_DUMPCORE
      Merge patch series "fs,kthread: start all kthreads in nullfs"
      initramfs_test: use test init/exit hooks to override init fs

 drivers/base/devtmpfs.c           |   2 +-
 drivers/block/rnbd/rnbd-srv.c     |   4 +-
 drivers/char/misc_minor_kunit.c   |  25 +++++----
 drivers/crypto/ccp/sev-dev.c      |  12 ++---
 drivers/target/target_core_alua.c |  11 +++-
 drivers/target/target_core_pr.c   |   4 +-
 fs/btrfs/volumes.c                |  11 +++-
 fs/coredump.c                     |  11 ++--
 fs/fs_struct.c                    | 103 ++++++++++++++++++++++++++++++++++++--
 fs/kernel_read_file.c             |   9 +---
 fs/namespace.c                    |  16 +++---
 fs/nfs/blocklayout/dev.c          |  15 ++++--
 fs/nullfs.c                       |  12 ++---
 fs/proc/array.c                   |   4 +-
 fs/proc/base.c                    |   8 +--
 fs/proc_namespace.c               |   4 +-
 fs/smb/server/mgmt/share_config.c |   4 +-
 fs/smb/server/smb2pdu.c           |   4 +-
 fs/smb/server/vfs.c               |   9 ++--
 include/linux/fs_struct.h         |  34 +++++++++++++
 include/linux/init_task.h         |   1 +
 include/linux/sched.h             |   1 +
 include/linux/sched/task.h        |   1 +
 init/init_task.c                  |   1 +
 init/initramfs.c                  |  14 ++++--
 init/initramfs_test.c             |  19 ++++++-
 init/main.c                       |  10 +++-
 kernel/fork.c                     |  53 ++++++++++++--------
 kernel/kcmp.c                     |   2 +-
 kernel/umh.c                      |   6 +--
 net/unix/af_unix.c                |  17 +++----
 31 files changed, 311 insertions(+), 116 deletions(-)

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

* [GIT PULL 11/18 for v7.3] vfs lookup
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (9 preceding siblings ...)
  2026-08-14 13:12 ` [GIT PULL 10/18 for v7.3] vfs kthread Christian Brauner
@ 2026-08-14 13:13 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:13 ` [GIT PULL 12/18 for v7.3] vfs misc Christian Brauner
                   ` (6 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:13 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

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

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

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

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

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

for you to fetch changes up to 895741772f6ca989da565bcbe4673f12d3d0ac31:

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

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

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

Thanks!
Christian

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

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

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

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

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

* [GIT PULL 12/18 for v7.3] vfs misc
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (10 preceding siblings ...)
  2026-08-14 13:13 ` [GIT PULL 11/18 for v7.3] vfs lookup Christian Brauner
@ 2026-08-14 13:13 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:13 ` [GIT PULL 13/18 for v7.3] vfs mount Christian Brauner
                   ` (5 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:13 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

- The lockref dead-count handling is tidied up. The open-coded check for
  a count below zero as the dead marker relies on information the caller should
  not have.

- make put_mnt_ns() leave mounts connected. Destroying a mount namespace
  disconnected its mounts from their mount points. So a file descriptor still
  open on the parent of a mount point could be used to peek under it.

  Locked mounts were already kept connected to prevent exactly that. But a
  mount is only locked when its tree is copied across a user namespace
  boundary. So a mount namespace set up by a privileged component had no locked
  mounts and its mounts were disconnected. Passing UMOUNT_CONNECTED keeps every
  mount connected and prevents that bug.

- vfs_prepare_mode() passes S_IFDIR for directories. I meant to fix that ago
  but didn't get to it. So now someone finally did it. That kills the exception
  where the could be 0 when a directory was created whereas every other
  creation operation passed it explicitly already.

- move long delayed work for ufs, jffs2, hfsplus, hfs and affs from the
  per-cpu system_long_wq to the new unbound system_dfl_long_wq. None of that
  work relies on per-cpu state and the work item is enqueued with
  queue_delayed_work() whose timer is global anyway. So it may as well benefit
  from scheduler task placement.

/* Smaller fixes and cleanups */

- unlock_buffer() and journal_end_buffer_io_sync() use clear_and_wake_up_bit()

- the pipe page pools are unified into a single per-pipe pool and the extra
  wake_up(rd_wait) is limited to EPOLLET consumers

- eventpoll now computes its timer slack lazily in ep_poll()

- shrink_dcache_for_umount() keeps making progress on busy roots

- excess xarray nodes are freed in clear_inode()

- romfs detects hard link cycles

- the user path of nested backing files is fixed

- pidfd holds exec_update_lock around the namespace ioctl

- non-memcg-aware nr_cached_objects is skipped during memcg slab shrink

- iomap_write_iter() always returns status

- mangle_path() is renamed to seq_mangle_path()

- inode timestamp accessors are annotated

- new regression test for pipe->poll_usage. 

- a few documentation, kernel-doc and selftest fixes

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

[1]: https://lore.kernel.org/linux-next/amnyXEARrAoFoPAj@sirena.org.uk

This conflicts with the gfs2 tree in two places. Both are caused by
commit 91e27ed8a387c ("lockref: tidy up dead count handling") from
this tree, which renames __lockref_is_dead() to lockref_is_dead() and
converts all callers, including the ones in gfs2.

The first conflict is in fs/gfs2/glock.c against commit da26828b82a45
("gfs2: Remove the glock lru list and shrinker"). Reported in [1].

[2]: https://lore.kernel.org/linux-next/an208OpVMNEI2Zfo@sirena.org.uk

The second conflict is in fs/gfs2/lock_dlm.c against commit
657e5af4fe0b9 ("gfs2: harden gfs2_glock_hold").

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

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

for you to fetch changes up to dcacab904fe78d60840ba947a104993ee9ded887:

  selftests/namespaces: Fix racy pipe handshake in timens and pidns_separate (2026-08-13 12:20:42 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.misc

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

Thanks!
Christian

----------------------------------------------------------------
Agatha Isabelle Moreira (2):
      fs: buffer: use clear_and_wake_up_bit() in unlock_buffer()
      fs: jbd2: use clear_and_wake_up_bit() in journal_end_buffer_io_sync()

Amin Vakil (1):
      selftests: proc: include fcntl.h in proc-pidns

Baokun Li (1):
      fs: fix user path of nested backing files

Ben Dooks (1):
      fs: nullfs should include mount.h

Breno Leitao (1):
      fs/pipe: unify the page pools into a single per-pipe pool

Brian Foster (1):
      iomap: always return status from iomap_write_iter

Chen Linxuan (1):
      pidfd: hold exec_update_lock around namespace ioctl

Christian Brauner (5):
      Merge patch series "fs: refactor code to use clear_and_wake_up_bit()"
      Merge patch series "vfs: pass S_IFDIR mode to vfs_prepare_mode()"
      Merge patch series "fs: Move long delayed work on system_dfl_long_wq"
      Merge patch series "put_mnt_ns(): leave mounts connected"
      Merge patch series "lockref tidy ups + touch ups to it's usage by dcache"

Jann Horn (1):
      fs: document semantics of kstat::{uid,gid} fields

Johannes Berg (1):
      seq_file: rename mangle_path to seq_mangle_path

Jori Koolstra (31):
      vfs: pass S_IFDIR mode to vfs_prepare_mode()
      9p: drop redundant S_IFDIR from mkdir
      affs: drop redundant S_IFDIR from mkdir
      afs: drop redundant S_IFDIR from mkdir
      autofs: drop redundant S_IFDIR from mkdir
      btrfs: drop redundant S_IFDIR from mkdir
      ceph: drop redundant S_IFDIR from mkdir
      ext2: drop redundant S_IFDIR from mkdir
      ext4: drop redundant S_IFDIR from mkdir
      f2fs: drop redundant S_IFDIR from mkdir
      gfs2: drop redundant S_IFDIR from mkdir
      hfs: drop redundant S_IFDIR from mkdir
      hfsplus: drop redundant S_IFDIR from mkdir
      hpfs: drop redundant S_IFDIR from mkdir
      hugetlbfs: drop redundant S_IFDIR from mkdir
      jffs2: drop redundant S_IFDIR from mkdir
      jfs: drop redundant S_IFDIR from mkdir
      minix: drop redundant S_IFDIR from mkdir
      nilfs2: drop redundant S_IFDIR from mkdir
      ntfs3: drop redundant S_IFDIR from mkdir
      ocfs2: drop redundant S_IFDIR from mkdir
      ocfs2: dlmfs: drop redundant S_IFDIR from mkdir
      omfs: drop redundant S_IFDIR from mkdir
      orangefs: drop redundant S_IFDIR from mkdir
      ramfs: drop redundant S_IFDIR from mkdir
      udf: drop redundant S_IFDIR from mkdir
      ufs: drop redundant S_IFDIR from mkdir
      nfs: drop redundant S_IFDIR from mkdir
      ubifs: drop redundant S_IFDIR from mkdir
      xfs: drop redundant S_IFDIR from mkdir
      ntfs: drop redundant S_IFDIR from mkdir

Karl Mehltretter (1):
      dcache: keep shrink_dcache_for_umount() making progress on busy roots

Luis Henriques (1):
      posix_acl: remove useless code

Malaya Kumar Rout (1):
      selftests/statmount: Fix file descriptor leak in setup_namespace

Manush Prajwal (1):
      fs: fix switch/case indentation in sysfs() syscall

Marco Crivellari (5):
      ufs: Move long delayed work on system_dfl_long_wq
      fs/jffs2: Move long delayed work on system_dfl_long_wq
      hfsplus: Move long delayed work on system_dfl_long_wq
      hfs: Move long delayed work on system_dfl_long_wq
      affs: Move long delayed work on system_dfl_long_wq

Mateusz Guzik (2):
      lockref: tidy up dead count handling
      dcache: use lockref routines for dead count checks

Matthew Wilcox (Oracle) (1):
      fs: Free any excess xarray nodes in clear_inode()

Noah Orlando (2):
      put_mnt_ns(): leave mounts connected
      selftests/filesystems: add mntns cleanup test

Oleg Nesterov (2):
      pipe: only enable the extra wake_up(rd_wait) for EPOLLET consumers
      selftests/epoll: add a regression test for pipe->poll_usage

Randy Dunlap (1):
      nstree: add/fix struct ns_id_req kernel-doc member fields

Ricardo B. Marlière (SUSE) (1):
      selftests/namespaces: Fix racy pipe handshake in timens and pidns_separate

Shivank Sharma (1):
      initramfs: fix typo in reserve_initrd_mem comment

Usama Arif (2):
      fs/super: skip non-memcg-aware nr_cached_objects in memcg slab shrink
      eventpoll: compute timer slack lazily in ep_poll()

Wang Yan (1):
      selftests/filesystems: fix spelling error in statmount test comment

Yichong Chen (1):
      fs: remove stale inode_insert5() kernel-doc parameter

Yu Peng (1):
      fs: annotate inode timestamp accessors

Yuhong Cheng (1):
      docs: filesystems: porting: fix spelling of returned and instead

이상호 (1):
      romfs: detect hard link cycles

 Documentation/filesystems/porting.rst              |   2 +-
 fs/9p/vfs_inode.c                                  |   2 +-
 fs/9p/vfs_inode_dotl.c                             |   1 -
 fs/affs/namei.c                                    |   2 +-
 fs/affs/super.c                                    |   2 +-
 fs/afs/dir.c                                       |   2 +-
 fs/autofs/root.c                                   |   2 +-
 fs/backing-file.c                                  |   2 +-
 fs/btrfs/inode.c                                   |   2 +-
 fs/ceph/dir.c                                      |   3 +-
 fs/coda/dir.c                                      |   7 +-
 fs/dcache.c                                        |  23 ++-
 fs/erofs/zdata.c                                   |   4 +-
 fs/eventpoll.c                                     |   6 +-
 fs/ext2/namei.c                                    |   2 +-
 fs/ext4/namei.c                                    |   2 +-
 fs/f2fs/namei.c                                    |   2 +-
 fs/filesystems.c                                   |  18 +-
 fs/fuse/dir.c                                      |   8 +
 fs/gfs2/glock.c                                    |   6 +-
 fs/gfs2/inode.c                                    |   2 +-
 fs/gfs2/lock_dlm.c                                 |   6 +-
 fs/gfs2/quota.c                                    |   4 +-
 fs/hfs/dir.c                                       |   2 +-
 fs/hfs/super.c                                     |   2 +-
 fs/hfsplus/dir.c                                   |   2 +-
 fs/hfsplus/super.c                                 |   2 +-
 fs/hpfs/namei.c                                    |   4 +-
 fs/hugetlbfs/inode.c                               |   2 +-
 fs/inode.c                                         |  42 ++---
 fs/iomap/buffered-io.c                             |   4 +-
 fs/jffs2/dir.c                                     |   2 -
 fs/jffs2/wbuf.c                                    |   2 +-
 fs/jfs/namei.c                                     |   2 +-
 fs/minix/namei.c                                   |   2 +-
 fs/namei.c                                         |   7 +-
 fs/namespace.c                                     |   2 +-
 fs/nfs/dir.c                                       |   2 +-
 fs/nilfs2/namei.c                                  |   2 +-
 fs/ntfs/namei.c                                    |   2 +-
 fs/ntfs3/namei.c                                   |   2 +-
 fs/nullfs.c                                        |   2 +
 fs/ocfs2/dlmfs/dlmfs.c                             |   2 +-
 fs/ocfs2/namei.c                                   |   2 +-
 fs/omfs/dir.c                                      |   2 +-
 fs/orangefs/namei.c                                |   2 +-
 fs/pidfs.c                                         |  43 +++--
 fs/pipe.c                                          | 191 ++++++++++-----------
 fs/posix_acl.c                                     |   2 -
 fs/ramfs/inode.c                                   |   2 +-
 fs/romfs/super.c                                   |   8 +
 fs/seq_file.c                                      |  11 +-
 fs/smb/client/inode.c                              |   7 +
 fs/stat.c                                          |   2 +-
 fs/super.c                                         |  19 +-
 fs/ubifs/dir.c                                     |   2 +-
 fs/udf/namei.c                                     |   2 +-
 fs/ufs/namei.c                                     |   2 +-
 fs/ufs/super.c                                     |   2 +-
 fs/xfs/xfs_buf.c                                   |   4 +-
 fs/xfs/xfs_iops.c                                  |   2 +-
 fs/xfs/xfs_qm.c                                    |   4 +-
 include/linux/fs.h                                 |  20 +--
 include/linux/lockref.h                            |  12 +-
 include/linux/pipe_fs_i.h                          |  26 ++-
 include/linux/seq_file.h                           |   2 +-
 include/linux/stat.h                               |   4 +-
 include/uapi/linux/nsfs.h                          |   7 +-
 init/initramfs.c                                   |   2 +-
 lib/lockref.c                                      |   2 +-
 lib/seq_buf.c                                      |   2 +-
 tools/testing/selftests/Makefile                   |   1 +
 .../filesystems/epoll/epoll_wakeup_test.c          |  23 +++
 .../selftests/filesystems/mntns_cleanup/.gitignore |   2 +
 .../selftests/filesystems/mntns_cleanup/Makefile   |   6 +
 .../filesystems/mntns_cleanup/mntns_cleanup_test.c |  58 +++++++
 .../filesystems/statmount/statmount_test.c         |   5 +-
 tools/testing/selftests/namespaces/nsid_test.c     |   4 -
 tools/testing/selftests/proc/proc-pidns.c          |   1 +
 79 files changed, 419 insertions(+), 266 deletions(-)
 create mode 100644 tools/testing/selftests/filesystems/mntns_cleanup/.gitignore
 create mode 100644 tools/testing/selftests/filesystems/mntns_cleanup/Makefile
 create mode 100644 tools/testing/selftests/filesystems/mntns_cleanup/mntns_cleanup_test.c

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

* [GIT PULL 13/18 for v7.3] vfs mount
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (11 preceding siblings ...)
  2026-08-14 13:13 ` [GIT PULL 12/18 for v7.3] vfs misc Christian Brauner
@ 2026-08-14 13:13 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:14 ` [GIT PULL 14/18 for v7.3] vfs netfs Christian Brauner
                   ` (4 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:13 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

- Make the legacy mount API notify pollers of propagation changes. Changing
  propagation via change_mnt_propagation() or MOVE_MOUNT_SET_GROUP update the
  propagation relationship of the target mount. Unlike mount_setattr() neither
  path touched the affected mount namespace. So pollers of
  /proc/<pid>/mountinfo were never woken.

- Also remove a redundant panic() in mnt_init().

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.mount

for you to fetch changes up to 083e8742e301a24f0c458696b45b481345888b85:

  mount: remove redundant panic() in mnt_init() (2026-07-22 17:57:45 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.mount

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

Thanks!
Christian

----------------------------------------------------------------
Guopeng Zhang (1):
      fs/namespace: notify pollers of legacy propagation changes

Hamza Mahfooz (1):
      mount: remove redundant panic() in mnt_init()

 fs/namespace.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

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

* [GIT PULL 14/18 for v7.3] vfs netfs
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (12 preceding siblings ...)
  2026-08-14 13:13 ` [GIT PULL 13/18 for v7.3] vfs mount Christian Brauner
@ 2026-08-14 13:14 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:14 ` [GIT PULL 15/18 for v7.3] vfs nilfs2 Christian Brauner
                   ` (3 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:14 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This sunsets cachefiles ondemand mode. It was an effort to make fscache
usable as a kernel cache for lazy pulling. EROFS over fscache was its
only in-tree user. fscache has since become netfslib-oriented while
EROFS never acts as a network filesystem and EROFS over fscache has been
removed. So this cleans up the netfs, fscache and cachefiles side as
well.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit db2ddb87143519e20a95aa36c60b36107b736a58:

  Linux 7.2-rc7 (2026-08-09 14:54:50 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.netfs

for you to fetch changes up to 949eb95d5bcc530e6ce74cc95897c1849c53ea89:

  cachefiles,netfs: sunset ondemand mode (2026-08-12 16:24:26 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.netfs

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

Thanks!
Christian

----------------------------------------------------------------
Gao Xiang (1):
      cachefiles,netfs: sunset ondemand mode

 Documentation/filesystems/caching/cachefiles.rst | 179 ------
 fs/cachefiles/Kconfig                            |  12 -
 fs/cachefiles/Makefile                           |   1 -
 fs/cachefiles/daemon.c                           |  96 +--
 fs/cachefiles/interface.c                        |   8 -
 fs/cachefiles/internal.h                         | 134 ----
 fs/cachefiles/io.c                               |  26 +-
 fs/cachefiles/namei.c                            |   8 -
 fs/cachefiles/ondemand.c                         | 761 -----------------------
 include/linux/netfs.h                            |   9 -
 include/trace/events/cachefiles.h                | 184 +-----
 include/uapi/linux/cachefiles.h                  |  68 --
 kernel/bpf/btf.c                                 |   7 -
 13 files changed, 9 insertions(+), 1484 deletions(-)
 delete mode 100644 fs/cachefiles/ondemand.c
 delete mode 100644 include/uapi/linux/cachefiles.h

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

* [GIT PULL 15/18 for v7.3] vfs nilfs2
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (13 preceding siblings ...)
  2026-08-14 13:14 ` [GIT PULL 14/18 for v7.3] vfs netfs Christian Brauner
@ 2026-08-14 13:14 ` Christian Brauner
  2026-08-14 17:26   ` Viacheslav Dubeyko
  2026-08-14 13:14 ` [GIT PULL 16/18 for v7.3] vfs ovl Christian Brauner
                   ` (2 subsequent siblings)
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:14 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This converts nilfs2 O_DIRECT reads to iomap and removes its use of
blockdev_direct_IO().

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit 1590cf0329716306e948a8fc29f1d3ee87d3989f:

  Linux 7.2-rc4 (2026-07-19 13:54:41 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.nilfs2

for you to fetch changes up to d5c57d9bf03516d625521cd6cf5acfd93e3e63c7:

  Merge patch series "nilfs2: convert O_DIRECT reads to iomap" (2026-07-27 11:43:15 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.nilfs2

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (1):
      Merge patch series "nilfs2: convert O_DIRECT reads to iomap"

Viacheslav Dubeyko (2):
      nilfs2: add iomap operations for direct I/O reads
      nilfs2: switch O_DIRECT reads to iomap

 fs/nilfs2/Kconfig  |  2 +-
 fs/nilfs2/Makefile |  2 +-
 fs/nilfs2/file.c   | 40 +++++++++++++++++++++++++++---
 fs/nilfs2/inode.c  | 13 ----------
 fs/nilfs2/iomap.c  | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 fs/nilfs2/iomap.h  | 13 ++++++++++
 6 files changed, 123 insertions(+), 18 deletions(-)
 create mode 100644 fs/nilfs2/iomap.c
 create mode 100644 fs/nilfs2/iomap.h

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

* [GIT PULL 16/18 for v7.3] vfs ovl
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (14 preceding siblings ...)
  2026-08-14 13:14 ` [GIT PULL 15/18 for v7.3] vfs nilfs2 Christian Brauner
@ 2026-08-14 13:14 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:14 ` [GIT PULL 17/18 for v7.3] vfs super Christian Brauner
  2026-08-14 13:15 ` [GIT PULL 18/18 for v7.3] vfs sync Christian Brauner
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:14 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This lets the merged overlayfs mount itself be idmapped through
mount_setattr(MOUNT_ATTR_IDMAP). In addition to the already supported
idmapped lower and upper layers. The same overlay tree can then be
exposed under a different ownership view.

Overlayfs already normalizes every underlying id through the relevant
layer idmap when ovl_copyattr() copies attributes into the overlay
inode. So the overlay inode's i_uid and i_gid are overlay-final ids.

The overlay mount idmap composes on top of that and is applied at the
overlay-inode boundary only while the underlying layers keep being
accessed with the mounter's credentials through their own (possibly
idmapped) mounts.

So this only changes how the caller sees the overlay inode and never
widens the mounter's access to the layers. The second,
mounter-credential check in ovl_permission() against the real inode
stays on the layer idmap.

Most paths need no change because the VFS applies the mount idmap to
the overlay inode before overlayfs runs or after it returns at the
syscall boundary. Overlayfs only has to change where it bypasses the
generic path.

This also included is a fix for a double end_creating() on the overlayfs
casefold-mismatch path.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.ovl

for you to fetch changes up to 077ab8985ee278c3d8618182d335b0f0cd919e16:

  ovl: fix double end_creating() on the casefold-mismatch path (2026-08-12 11:40:35 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.ovl

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (11):
      ovl: handle idmapped mounts in ovl_create_object() and ovl_tmpfile()
      ovl: handle idmapped mounts in ovl_permission()
      ovl: handle idmapped mounts in ovl_setattr()
      ovl: handle idmapped mounts in ovl_getattr()
      ovl: handle idmapped mounts in ovl_set_acl()
      ovl: allow idmapping overlay mounts
      docs: document idmapped overlay mounts
      selftests/filesystems/overlayfs: fix set_layers_via_fds link error
      selftests/filesystems/overlayfs: test idmapped overlay mounts
      ovl: document security.capability idmapping on the xattr forward paths
      Merge patch series "ovl: support idmapped overlay mounts"

Vivek Parikh (1):
      ovl: fix double end_creating() on the casefold-mismatch path

 Documentation/filesystems/overlayfs.rst            |  16 +
 fs/overlayfs/dir.c                                 |  17 +-
 fs/overlayfs/inode.c                               |  26 +-
 fs/overlayfs/overlayfs.h                           |   1 +
 fs/overlayfs/super.c                               |   2 +-
 fs/overlayfs/xattrs.c                              |   1 +
 .../selftests/filesystems/overlayfs/.gitignore     |   1 +
 .../selftests/filesystems/overlayfs/Makefile       |   2 +
 .../filesystems/overlayfs/idmapped_mounts.c        | 501 +++++++++++++++++++++
 .../filesystems/overlayfs/set_layers_via_fds.c     |  16 +-
 10 files changed, 560 insertions(+), 23 deletions(-)
 create mode 100644 tools/testing/selftests/filesystems/overlayfs/idmapped_mounts.c

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

* [GIT PULL 17/18 for v7.3] vfs super
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (15 preceding siblings ...)
  2026-08-14 13:14 ` [GIT PULL 16/18 for v7.3] vfs ovl Christian Brauner
@ 2026-08-14 13:14 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  2026-08-14 13:15 ` [GIT PULL 18/18 for v7.3] vfs sync Christian Brauner
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:14 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

- Make it possible to share a block device between multiple filesystems.
  erofs can mount read-only blob devices shared between many
  superblocks. Because we only tracked a single superblock a freeze,
  thaw, removal or sync on such a device was never propagated to all the
  superblocks using it, and there was no way to find them. So add an
  efficient table to lookup all superblocks using a given block device.

- A bunch of pre-existing fixes fell out of this work. A block-device
  freeze racing a btrfs device change could leave the whole filesystem
  stuck frozen. A bdev_freeze() issued by "dmsetup suspend" or an LVM
  snapshot resolves that holder to freeze the filesystem. and
  bdev_thaw() resolves it again to thaw. A freeze landing while btrfs is
  adding, removing or replacing a device freezes the filesystem. The
  membership change then drops that link. So the matching thaw could no
  longer find the superblock.

  Forbid freezing a device for the duration of a membership change,
  modelled on deny_write_access()/allow_write_access().

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

[1]: https://lore.kernel.org/linux-next/ak4urgJRb-83KEUI@sirena.org.uk

This conflicts with commit d943e68edc5cb ("selftests/filesystems:
test O_TMPFILE creation on idmapped mounts") in
tools/testing/selftests/filesystems/Makefile and
tools/testing/selftests/filesystems/.gitignore. Both that commit and
commit a21db4dcaf4ad ("selftests/filesystems: add ustat() coverage")
from this tree register a new selftest on the same two lines. The
conflict resolves by keeping both.

This tag additionally conflicts with two of the earlier tags in this
pull request series, so please merge it after them:

  - with vfs-7.3-rc1.mount
  - with vfs-7.3-rc1.misc

Both resolve by keeping both sides.

diff --cc fs/namespace.c
index 3c382c2bdeec,7cef6dae0854..1ecd96c918b3
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@@ -6270,6 -6259,11 +6270,8 @@@ void __init mnt_init(void
  				HASH_ZERO,
  				&mp_hash_shift, &mp_hash_mask, 0, 0);
  
 -	if (!mount_hashtable || !mountpoint_hashtable)
 -		panic("Failed to allocate mount hash table\n");
 -
+ 	super_dev_init();
+ 
  	kernfs_init();
  
  	err = sysfs_init();
diff --cc fs/super.c
index 2c52c321885f,a62af36f7aaf..05e443173038
--- a/fs/super.c
+++ b/fs/super.c
@@@ -24,7 -24,7 +24,8 @@@
  #include <linux/export.h>
  #include <linux/slab.h>
  #include <linux/blkdev.h>
 +#include <linux/memcontrol.h>
+ #include <linux/rhashtable.h>
  #include <linux/mount.h>
  #include <linux/security.h>
  #include <linux/writeback.h>		/* for the emergency remount stuff */
diff --cc tools/testing/selftests/filesystems/.gitignore
index a78f894157de,1bd53d54553c..9eb185fb2f9d
--- a/tools/testing/selftests/filesystems/.gitignore
+++ b/tools/testing/selftests/filesystems/.gitignore
@@@ -5,4 -5,4 +5,5 @@@ fclo
  file_stressor
  anon_inode_test
  kernfs_test
 +idmapped_tmpfile
+ ustat_test
diff --cc tools/testing/selftests/filesystems/Makefile
index a7ec2ba2dd83,bbdd40b167fa..03be337c1f35
--- a/tools/testing/selftests/filesystems/Makefile
+++ b/tools/testing/selftests/filesystems/Makefile
@@@ -1,8 -1,7 +1,8 @@@
  # SPDX-License-Identifier: GPL-2.0
  
  CFLAGS += $(KHDR_INCLUDES)
- TEST_GEN_PROGS := devpts_pts file_stressor anon_inode_test kernfs_test fclog
+ TEST_GEN_PROGS := devpts_pts file_stressor anon_inode_test kernfs_test fclog ustat_test
 +TEST_GEN_PROGS += idmapped_tmpfile
  TEST_GEN_PROGS_EXTENDED := dnotify_test
  
  include ../lib.mk

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

No known conflicts.

The following changes since commit dc59e4fea9d83f03bad6bddf3fa2e52491777482:

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

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.super

for you to fetch changes up to 9ac8fd831252e52aa78399eaccc11a72f6c2af1a:

  super: fix dying superblock warning messages (2026-08-12 09:20:35 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.super

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (24):
      block: allow making a block device unfreezable
      block: split bdev_yield_claim() out of bdev_fput()
      btrfs: deny freezing a device while it is being removed
      btrfs: deny freezing a device while it is being added
      btrfs: deny freezing devices undergoing a replace
      Merge patch series "block,btrfs: fix frozen-superblock strand on device add/remove/replace"
      super: convert s_count to refcount_t s_passive
      super: take lock after last reference count
      fs, block: move blk_mode_t and fop_flags_t into <linux/types.h>
      ext4: use anonymous devices for KUnit test superblocks
      ocfs2: don't reset s_dev on dismount
      fs: maintain a global device-to-superblock table
      fs: add dedicated block device open helpers for filesystems
      xfs: port to fs_bdev_file_open_by_path()
      btrfs: open via dedicated fs bdev helpers
      ext4: open via dedicated fs bdev helpers
      fs: look up superblocks via the device table in fs_holder_ops
      fs: tolerate per-superblock freeze errors on shared devices
      erofs: open via dedicated fs bdev helpers
      f2fs: open via dedicated fs bdev helpers
      super: make fs_holder_ops private
      fs: look up the superblock via the device table in user_get_super()
      selftests/filesystems: add ustat() coverage
      Merge patch series "fs: support freeze/thaw/mark_dead/sync with shared devices"

Karl Mehltretter (1):
      super: fix dying superblock warning messages

Yun Zhou (1):
      block: reject block device inodes with i_rdev == 0 in lookup_bdev()

 block/bdev.c                                     | 125 ++++-
 fs/btrfs/dev-replace.c                           |  65 ++-
 fs/btrfs/ioctl.c                                 |   4 +-
 fs/btrfs/volumes.c                               | 105 +++-
 fs/btrfs/volumes.h                               |   6 +-
 fs/cramfs/inode.c                                |   2 +-
 fs/erofs/super.c                                 |  35 +-
 fs/ext4/extents-test.c                           |   9 +-
 fs/ext4/mballoc-test.c                           |   9 +-
 fs/ext4/super.c                                  |  12 +-
 fs/f2fs/super.c                                  |   6 +-
 fs/internal.h                                    |   1 +
 fs/namespace.c                                   |   2 +
 fs/ocfs2/super.c                                 |   1 -
 fs/romfs/super.c                                 |   2 +-
 fs/super.c                                       | 624 ++++++++++++++++-------
 fs/xfs/xfs_buf.c                                 |   2 +-
 fs/xfs/xfs_super.c                               |  10 +-
 include/linux/blk_types.h                        |   2 +-
 include/linux/blkdev.h                           |  12 +-
 include/linux/fs.h                               |   2 -
 include/linux/fs/super.h                         |   8 +
 include/linux/fs/super_types.h                   |   4 +-
 include/linux/types.h                            |   2 +
 tools/testing/selftests/filesystems/.gitignore   |   1 +
 tools/testing/selftests/filesystems/Makefile     |   2 +-
 tools/testing/selftests/filesystems/ustat_test.c | 135 +++++
 27 files changed, 882 insertions(+), 306 deletions(-)
 create mode 100644 tools/testing/selftests/filesystems/ustat_test.c

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

* [GIT PULL 18/18 for v7.3] vfs sync
  2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
                   ` (16 preceding siblings ...)
  2026-08-14 13:14 ` [GIT PULL 17/18 for v7.3] vfs super Christian Brauner
@ 2026-08-14 13:15 ` Christian Brauner
  2026-08-17 22:25   ` pr-tracker-bot
  17 siblings, 1 reply; 38+ messages in thread
From: Christian Brauner @ 2026-08-14 13:15 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This makes sync_inode_metadata() and writeback_single_inode() persist
not only the inode but all metadata associated with it.

A new .sync_inode_metadata superblock operation is called from
__writeback_single_inode(). Alongside it a new I_METADATA_WRITEBACK
state flag is added.

Filesystems no longer need their own mmb_fsync() implementations and can
just use simple_fsync(). All metadata is now written for IS_SYNC and
IS_DIRSYNC inodes. Races where several fsyncs raced and mmb_sync() could
return before all buffers were really persisted are fixed since I_SYNC
now serializes properly.

The I_METADATA_WRITEBACK scheme also fixes the case where a
WB_SYNC_NONE writeback landing between write(2) and fsync(2) left
fsync(2) failing to persist the inode. That problem is not specific to
filesystems using the generic metadata bh tracking, and the ones that
do not are left alone.

ext2, udf, bfs, minix, fat and ext4 in nojournal mode have their data
integrity writeout fixed and are converted. affs drops metadata bh
tracking and mmb_fsync() is removed.

A few other fixes came out of this:

- a UAF in mark_buffer_write_io_error()

- missed inode writeback when racing with __writeback_single_inode()

- ext4 allocating the mapping_metadata_bhs struct on demand

- three fat fixes: a lost inode update in do_msdos_rename() with
  DIRSYNC, inode buffer write errors not propagating out of
  fat_sync_inode_metadata() and directory entries not being persisted on
  fsync(2) of the root directory.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

[1]: https://lore.kernel.org/linux-next/ams9K7q5NMj9ifmm@sirena.org.uk

This conflicts with the ext3 tree in fs/ext2/xattr.c between commit
6abf69e2e7f91 ("ext2: Simplify error handling of IO error when adding
xattr") from the ext3 tree and commit 356984d1a5c32 ("ext2: Fix lost
inode updates for IS_SYNC inodes") from this tree:

diff --cc fs/ext2/xattr.c
index 5f49ec4afc36f,be63f89402a38..0000000000000
--- a/fs/ext2/xattr.c
+++ b/fs/ext2/xattr.c
@@@ -777,16 -777,20 +777,16 @@@ ext2_xattr_set2(struct inode *inode, st
  	/* Update the inode. */
  	EXT2_I(inode)->i_file_acl = new_bh ? new_bh->b_blocknr : 0;
  	inode_set_ctime_current(inode);
+ 	mark_inode_dirty(inode);
  	if (IS_SYNC(inode)) {
  		error = sync_inode_metadata(inode, 1);
 -		/* In case sync failed due to ENOSPC the inode was actually
 -		 * written (only some dirty data were not) so we just proceed
 -		 * as if nothing happened and cleanup the unused block */
 -		if (error && error != -ENOSPC) {
 -			if (new_bh && new_bh != old_bh) {
 -				dquot_free_block_nodirty(inode, 1);
 -				mark_inode_dirty(inode);
 -			}
 +		/*
 +		 * Inode writeout failed. Backing everything out is complex so
 +		 * let's just leave it for e2fsck to cleanup the mess.
 +		 */
 +		if (error)
  			goto cleanup;
- 	} else
- 		mark_inode_dirty(inode);
 -		}
+ 	}
  
  	error = 0;
  	if (old_bh && old_bh != new_bh) {

The following changes since commit 1590cf0329716306e948a8fc29f1d3ee87d3989f:

  Linux 7.2-rc4 (2026-07-19 13:54:41 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-7.3-rc1.sync

for you to fetch changes up to 974d0be0cb8e48d63b9d413a2e1a8fba16cd2583:

  writeback: Export __inode_attach_wb() (2026-07-28 14:08:52 +0200)

----------------------------------------------------------------
vfs-7.3-rc1.sync

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

Thanks!
Christian

----------------------------------------------------------------
Christian Brauner (5):
      Merge patch series "fs: Fix missed inode write during fsync"
      fat: Fix lost inode update in do_msdos_rename() with DIRSYNC
      fat: Propagate inode buffer write errors from fat_sync_inode_metadata()
      fat: Fix persisting directory entries on fsync(2) of the root directory
      writeback: Export __inode_attach_wb()

Jan Kara (20):
      affs: Drop support for metadata bh tracking
      fs: Fix possible UAF in mark_buffer_write_io_error()
      fs: Fix missed inode writeback when racing with __writeback_single_inode
      ext4: Allocate mapping_metadata_bhs struct on demand
      fs: Provide way for filesystem to wait for metadata writeback
      ext2: Fix lost inode updates for IS_SYNC inodes
      ext2: Drop __ext2_write_inode()
      ext2: Avoid unnecessary inode buffer writeback for sync(2)
      ext2: Fix data integrity writeout issues
      udf: Fix data integrity writeout issues
      udf: Use sync_inode_metadata() to writeout IS_SYNC inode
      udf: Drop udf_sync_inode()
      udf: Use sync_inode_metadata() in udf_evict_inode()
      udf: Fold udf_update_inode() into udf_write_inode()
      bfs: Fix data integrity writeout issues
      minix: Fix data integrity writeout issues
      ext4: Fix data integrity writeout issues in nojournal mode
      fat: Fix missed inode writeback during fsync(2)
      fat: Replace fat_sync_inode() with sync_inode_metadata()
      vfs: Remove mmb_fsync()

 fs/affs/affs.h                 |   2 -
 fs/affs/amigaffs.c             |  12 ++---
 fs/affs/file.c                 |  25 +++++-----
 fs/affs/inode.c                |  13 ++----
 fs/affs/namei.c                |   9 ++--
 fs/affs/super.c                |   1 -
 fs/bfs/dir.c                   |   9 +---
 fs/bfs/inode.c                 |  30 +++++++++---
 fs/buffer.c                    |  83 ++++-----------------------------
 fs/ext2/dir.c                  |   2 +-
 fs/ext2/ext2.h                 |   3 +-
 fs/ext2/file.c                 |  17 +------
 fs/ext2/inode.c                |  49 ++++++++++++--------
 fs/ext2/super.c                |   1 +
 fs/ext2/xattr.c                |   4 +-
 fs/ext4/ext4.h                 |  14 +++++-
 fs/ext4/ext4_jbd2.c            |  25 ++++++++--
 fs/ext4/fsync.c                |  24 ++--------
 fs/ext4/inode.c                | 102 +++++++++++++++++++++++++++--------------
 fs/ext4/super.c                |  16 +++++--
 fs/fat/dir.c                   |   6 +--
 fs/fat/fat.h                   |   1 -
 fs/fat/file.c                  |   9 ++--
 fs/fat/inode.c                 |  63 ++++++++++++++++++-------
 fs/fat/misc.c                  |   7 +--
 fs/fat/namei_msdos.c           |  33 +++++++------
 fs/fat/namei_vfat.c            |  20 ++++----
 fs/fs-writeback.c              |  34 +++++++++++---
 fs/libfs.c                     |   7 ++-
 fs/minix/dir.c                 |   2 +-
 fs/minix/file.c                |   9 +---
 fs/minix/inode.c               |  52 ++++++++++++++-------
 fs/minix/minix.h               |   1 -
 fs/udf/dir.c                   |   2 +-
 fs/udf/file.c                  |  11 ++---
 fs/udf/inode.c                 |  54 +++++++++++-----------
 fs/udf/super.c                 |   1 +
 fs/udf/udfdecl.h               |   2 +-
 include/linux/buffer_head.h    |   4 --
 include/linux/fs.h             |  10 +++-
 include/linux/fs/super_types.h |   2 +
 41 files changed, 409 insertions(+), 362 deletions(-)

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

* Re: [GIT PULL 15/18 for v7.3] vfs nilfs2
  2026-08-14 13:14 ` [GIT PULL 15/18 for v7.3] vfs nilfs2 Christian Brauner
@ 2026-08-14 17:26   ` Viacheslav Dubeyko
  2026-08-17  7:30     ` Christian Brauner
  0 siblings, 1 reply; 38+ messages in thread
From: Viacheslav Dubeyko @ 2026-08-14 17:26 UTC (permalink / raw)
  To: Christian Brauner, Linus Torvalds; +Cc: linux-fsdevel, linux-kernel

Hi Christian,

Unfortunately, we've found some issues in the initial patchset. And v3
[1] is what we would like to send finally upstream.

Thanks,
Slava.

https://lore.kernel.org/linux-nilfs/20260812221154.1119137-1-slava@dubeyko.com/T/#t

On Fri, 2026-08-14 at 15:14 +0200, Christian Brauner wrote:
> Hey Linus,
> 
> /* Summary */
> 
> This converts nilfs2 O_DIRECT reads to iomap and removes its use of
> blockdev_direct_IO().
> 
> /* Testing */
> 
> No build failures or warnings were observed.
> 
> /* Conflicts */
> 
> Merge conflicts with mainline
> =============================
> 
> No known conflicts.
> 
> Merge conflicts with other trees
> ================================
> 
> No known conflicts.
> 
> The following changes since commit
> 1590cf0329716306e948a8fc29f1d3ee87d3989f:
> 
>   Linux 7.2-rc4 (2026-07-19 13:54:41 -0700)
> 
> are available in the Git repository at:
> 
>   git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-
> 7.3-rc1.nilfs2
> 
> for you to fetch changes up to
> d5c57d9bf03516d625521cd6cf5acfd93e3e63c7:
> 
>   Merge patch series "nilfs2: convert O_DIRECT reads to iomap" (2026-
> 07-27 11:43:15 +0200)
> 
> ----------------------------------------------------------------
> vfs-7.3-rc1.nilfs2
> 
> Please consider pulling these changes from the signed vfs-7.3-
> rc1.nilfs2 tag.
> 
> Thanks!
> Christian
> 
> ----------------------------------------------------------------
> Christian Brauner (1):
>       Merge patch series "nilfs2: convert O_DIRECT reads to iomap"
> 
> Viacheslav Dubeyko (2):
>       nilfs2: add iomap operations for direct I/O reads
>       nilfs2: switch O_DIRECT reads to iomap
> 
>  fs/nilfs2/Kconfig  |  2 +-
>  fs/nilfs2/Makefile |  2 +-
>  fs/nilfs2/file.c   | 40 +++++++++++++++++++++++++++---
>  fs/nilfs2/inode.c  | 13 ----------
>  fs/nilfs2/iomap.c  | 71
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  fs/nilfs2/iomap.h  | 13 ++++++++++
>  6 files changed, 123 insertions(+), 18 deletions(-)
>  create mode 100644 fs/nilfs2/iomap.c
>  create mode 100644 fs/nilfs2/iomap.h

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

* Re: [GIT PULL 15/18 for v7.3] vfs nilfs2
  2026-08-14 17:26   ` Viacheslav Dubeyko
@ 2026-08-17  7:30     ` Christian Brauner
  0 siblings, 0 replies; 38+ messages in thread
From: Christian Brauner @ 2026-08-17  7:30 UTC (permalink / raw)
  To: Viacheslav Dubeyko; +Cc: Linus Torvalds, linux-fsdevel, linux-kernel

On Fri, Aug 14, 2026 at 10:26:56AM -0700, Viacheslav Dubeyko wrote:
> Hi Christian,
> 
> Unfortunately, we've found some issues in the initial patchset. And v3
> [1] is what we would like to send finally upstream.

Ok, no problem. @Linus please discard this pull request.
I'll get an updated variant out in the second week of the merge window.

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

* Re: [GIT PULL 01/18 for v7.3] ipc misc
  2026-08-14 13:10 ` [GIT PULL 01/18 for v7.3] ipc misc Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:10:41 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

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

The pull request you sent on Fri, 14 Aug 2026 15:11:13 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 03/18 for v7.3] vfs binfmt
  2026-08-14 13:11 ` [GIT PULL 03/18 for v7.3] vfs binfmt Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:11:26 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 04/18 for v7.3] vfs efs
  2026-08-14 13:11 ` [GIT PULL 04/18 for v7.3] vfs efs Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:11:41 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 05/18 for v7.3] vfs failfs
  2026-08-14 13:11 ` [GIT PULL 05/18 for v7.3] vfs failfs Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:11:51 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 06/18 for v7.3] vfs fat
  2026-08-14 13:12 ` [GIT PULL 06/18 for v7.3] vfs fat Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:12:03 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 07/18 for v7.3] vfs freevxfs
  2026-08-14 13:12 ` [GIT PULL 07/18 for v7.3] vfs freevxfs Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:12:14 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 08/18 for v7.3] vfs iomap
  2026-08-14 13:12 ` [GIT PULL 08/18 for v7.3] vfs iomap Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:12:24 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 09/18 for v7.3] vfs kfunc
  2026-08-14 13:12 ` [GIT PULL 09/18 for v7.3] vfs kfunc Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:12:38 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 10/18 for v7.3] vfs kthread
  2026-08-14 13:12 ` [GIT PULL 10/18 for v7.3] vfs kthread Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:12:59 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 11/18 for v7.3] vfs lookup
  2026-08-14 13:13 ` [GIT PULL 11/18 for v7.3] vfs lookup Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:13:13 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 12/18 for v7.3] vfs misc
  2026-08-14 13:13 ` [GIT PULL 12/18 for v7.3] vfs misc Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:13:26 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 13/18 for v7.3] vfs mount
  2026-08-14 13:13 ` [GIT PULL 13/18 for v7.3] vfs mount Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:13:45 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 14/18 for v7.3] vfs netfs
  2026-08-14 13:14 ` [GIT PULL 14/18 for v7.3] vfs netfs Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:14:05 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 16/18 for v7.3] vfs ovl
  2026-08-14 13:14 ` [GIT PULL 16/18 for v7.3] vfs ovl Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:14:32 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 17/18 for v7.3] vfs super
  2026-08-14 13:14 ` [GIT PULL 17/18 for v7.3] vfs super Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:14:46 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

* Re: [GIT PULL 18/18 for v7.3] vfs sync
  2026-08-14 13:15 ` [GIT PULL 18/18 for v7.3] vfs sync Christian Brauner
@ 2026-08-17 22:25   ` pr-tracker-bot
  0 siblings, 0 replies; 38+ messages in thread
From: pr-tracker-bot @ 2026-08-17 22:25 UTC (permalink / raw)
  To: Christian Brauner
  Cc: Linus Torvalds, Christian Brauner, linux-fsdevel, linux-kernel

The pull request you sent on Fri, 14 Aug 2026 15:15:02 +0200:

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

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

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

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

end of thread, other threads:[~2026-08-17 22:26 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-14 13:07 [GIT PULL 00/18 for v7.3] v7.3 Christian Brauner
2026-08-14 13:10 ` [GIT PULL 01/18 for v7.3] ipc misc Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:11 ` [GIT PULL 02/18 for v7.3] kernel misc Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:11 ` [GIT PULL 03/18 for v7.3] vfs binfmt Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:11 ` [GIT PULL 04/18 for v7.3] vfs efs Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:11 ` [GIT PULL 05/18 for v7.3] vfs failfs Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:12 ` [GIT PULL 06/18 for v7.3] vfs fat Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:12 ` [GIT PULL 07/18 for v7.3] vfs freevxfs Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:12 ` [GIT PULL 08/18 for v7.3] vfs iomap Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:12 ` [GIT PULL 09/18 for v7.3] vfs kfunc Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:12 ` [GIT PULL 10/18 for v7.3] vfs kthread Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:13 ` [GIT PULL 11/18 for v7.3] vfs lookup Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:13 ` [GIT PULL 12/18 for v7.3] vfs misc Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:13 ` [GIT PULL 13/18 for v7.3] vfs mount Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:14 ` [GIT PULL 14/18 for v7.3] vfs netfs Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:14 ` [GIT PULL 15/18 for v7.3] vfs nilfs2 Christian Brauner
2026-08-14 17:26   ` Viacheslav Dubeyko
2026-08-17  7:30     ` Christian Brauner
2026-08-14 13:14 ` [GIT PULL 16/18 for v7.3] vfs ovl Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:14 ` [GIT PULL 17/18 for v7.3] vfs super Christian Brauner
2026-08-17 22:25   ` pr-tracker-bot
2026-08-14 13:15 ` [GIT PULL 18/18 for v7.3] vfs sync Christian Brauner
2026-08-17 22:25   ` 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

all inboxes | Powered by JetHome®