mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christian Brauner <brauner@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Christian Brauner <brauner@kernel.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [GIT PULL 14/19 for v7.4] vfs misc
Date: Fri, 16 Oct 2026 12:23:48 +0200	[thread overview]
Message-ID: <20261016-vfs-7.4-rc1.misc-4e00f3bd0c83@brauner> (raw)
In-Reply-To: <20261016-vfs-v74-41eaf6c4712c@brauner>

Hey Linus,

/* Summary */

Fixes

- aio: a keyed poll completion on an epoll instance could recurse into
  the same epoll waitqueue lock when the result eventfd is watched by
  that very instance. An unprivileged process could make a CPU spin on
  the recursive lock. eventfd-backed poll completions are always
  deferred now.

- fsnotify_inoderemove() is only called once the inode is really dead,
  no nlink and no aliases, and open_by_handle_at() can't add an alias
  to a dead inode anymore. The race could crash fsnotify or lose inode
  mark notifications.

- devtmpfs: the conversion of the public instance to ->get_tree() broke
  reconfiguring the shared superblock's options on later mounts which
  made the boot time defaults permanent. A reconfigure context is kept
  in fc->fs_private so the parse ops can forward options to the
  underlying filesystem.

- ufs truncated the 64-bit directory size to an unsigned int in
  ufs_last_byte(). A crafted image with a 4 GiB directory produced an
  out-of-folio read in ufs_find_entry() and, with CONFIG_UFS_FS_WRITE,
  a write into an adjacent page.

- devpts rejects max=0 instead of silently lifting the per-instance pty
  limit. The value wrapped into ida_alloc_max() and became unlimited.

- fs_pin publishes pins with the rcu list helpers so the kill paths
  reading the lists under rcu see the initialization.

- dentry_kill() reports a Tasks-RCU quiescent state. Its cond_resched()
  is the only reschedule point on the dentry teardown path and
  cond_resched() isn't a quiescent state for Tasks-RCU, so Meta kept
  seeing rcu_tasks stalls in btrfs subvolume deletion.

- writeback sizes foreign flushes by the target wb's dirty pages instead
  of the memcg-wide count which over or undersized a single bdi flush.

- nfsd READ emitted two fsnotify access events on the iterator path
  since vfs_iocb_iter_read() already sends one. A READ on a krb5i or
  krb5p mount showed up twice in inotify.

- pipe and splice pass a poll key when waking readers and writers so
  epoll, poll() and select() waiters only wake for the event they asked
  for.

- the iso8859-14 Unicode to charset tables had page01 duplicated as
  page1e so 29 code points mapped to the wrong bytes and 22 that aren't
  in the charset were accepted.

- orangefs doesn't wait for an unmount service operation that never
  returns on system shutdown and uses ssize_t for strscpy() errors.

- __register_chrdev() checks the kobject_set_name() return value.

- selftest fixes: the openat2 tests hardcoded O_LARGEFILE to 0x8000
  which is O_NOFOLLOW on powerpc, resolve_test makes /tmp a mountpoint
  so RESOLVE_NO_XDEV has a boundary to trip over, file_stressor moves
  into its own directory with a 30 minute timeout, the kernfs listxattr
  test skips when SELinux exposes security.selinux, the namespaces
  active reference tests wait for the thread via a PIDFD_THREAD pidfd
  since pthread_join() returns before exit_nsproxy_namespaces(), the
  idmapped_tmpfile test chowns its directory into the mapped range, the
  clone3 CLONE_CLEAR_SIGHAND test adds CLONE_VM so it fails for the
  intended reason, the pidfd PPID error message prints the values it
  compares and fscontext_ns gets a .gitignore.

Cleanups

- vmcore prints the release of the crashed kernel from the VMCOREINFO
  note so a kdump that dies before the dump lands still says which
  kernel it was for.

- initramfs allocates hardlink hash entries with the validated cpio
  name length instead of PATH_MAX, which put every entry in kmalloc-8k.

- the unused dax_layout_busy_page() is removed,
  dax_layout_busy_page_range() becomes static and dax_folio_init()
  drops a redundant list initialization.

- vfs_empty_path() is removed, it has had no callers since
  getname_maybe_null().

- comment and documentation fixes in aio, bpf_fs_kfuncs, fs-writeback,
  inode, read_write, squashfs and the vfs.rst copy of struct
  file_system_type.

/* Testing */

No build failures or warnings were observed.

/* Conflicts */

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

This conflicts with mainline in tools/testing/selftests/Makefile and
tools/testing/selftests/filesystems/Makefile between commits
d59ac79915daa ("selftests/filesystems: fix missing and stale TARGETS
entries") and 66cda7ec9abec ("selftests/filesystems: check that an
immutable inode takes no write hint") in mainline and commit
5550456dad376 ("selftests/filesystems: Move file_stressor to dedicated
subdirectory") from this tree:

diff --cc tools/testing/selftests/Makefile
index bc4fdb6f5337,08f228765a93..000000000000
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@@ -35,11 -35,9 +35,12 @@@ TARGETS += fchmodat
  TARGETS += filesystems
  TARGETS += filesystems/binderfs
  TARGETS += filesystems/epoll
 +TARGETS += filesystems/eventfd
  TARGETS += filesystems/failfs
  TARGETS += filesystems/fat
+ TARGETS += filesystems/file_stressor
 +TARGETS += filesystems/openat2
 +TARGETS += filesystems/open_tree_ns
  TARGETS += filesystems/overlayfs
  TARGETS += filesystems/statmount
  TARGETS += filesystems/mount-notify
diff --cc tools/testing/selftests/filesystems/Makefile
index 93e2cc9123b0,bc4bfb677589..000000000000
--- a/tools/testing/selftests/filesystems/Makefile
+++ b/tools/testing/selftests/filesystems/Makefile
@@@ -1,7 -1,7 +1,7 @@@
  # SPDX-License-Identifier: GPL-2.0
  
  CFLAGS += $(KHDR_INCLUDES)
- TEST_GEN_PROGS := devpts_pts file_stressor anon_inode_test kernfs_test fclog ustat_test rw_hint_test
 -TEST_GEN_PROGS := devpts_pts anon_inode_test kernfs_test fclog ustat_test
++TEST_GEN_PROGS := devpts_pts anon_inode_test kernfs_test fclog ustat_test rw_hint_test
  TEST_GEN_PROGS += idmapped_tmpfile
  TEST_GEN_PROGS_EXTENDED := dnotify_test
  

It also conflicts with the vfs-7.4-rc1.coredump tag in fs/coredump.c
between commit 3aa5ebec7895c ("coredump: describe the holes when
COREDUMP_SPARSE is negotiated") from that tag and commit 21a62663d4734
("fs: fix typos in comments") from this tag. The coredump tag is merged
before this one. The typo fix touches a comment the coredump tag
rewrites, so the coredump tag's version of the comment wins.

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

No known conflicts.

The following changes since commit cee9395acd8043be0644b25c34bfa86623f2b935:

  Linux 7.3-rc1 (2026-08-30 13:34:40 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 9ba6627ef6b12debd1c54443939718db63234274:

  selftests/filesystems: Fix idmapped_tmpfile layer dir ownership (2026-10-12 11:24:28 +0200)

----------------------------------------------------------------
vfs-7.4-rc1.misc

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

Thanks!
Christian

----------------------------------------------------------------
Ali Ahmet Memiş (1):
      nls: fix the Unicode to charset tables of iso8859-14

Amir Goldstein (1):
      fs: make sure to call fsnotify_inoderemove() only once when inode is dead

Bjoern Doebel (1):
      selftests/filesystems: Fix idmapped_tmpfile layer dir ownership

Breno Leitao (4):
      pipe: pass a poll key when waking writers after a resize
      splice: pass a poll key when waking pipe readers and writers
      vmcore: report the release of the crashed kernel
      dcache: report a Tasks-RCU quiescent state in dentry_kill()

Christian Brauner (3):
      Merge patch series "selftests/filesystems: selftest fixes"
      Merge patch series "fs/dax: Clean up busy page lookup helpers"
      Merge patch series "selftests/filesystems/openat2: fix O_LARGEFILE definitions for non-arm64 architectures"

Chuck Lever (1):
      splice: emit a single fsnotify access event per NFSD READ

Daehyeon Ko (1):
      aio: prevent eventfd/epoll recursion on poll

Disha Goel (4):
      selftests/filesystems: Move file_stressor to dedicated subdirectory
      selftests/filesystems: skip listxattr kernfs test if xattrs are present
      selftests/filesystems/openat2: fix O_LARGEFILE definitions for non-arm64 architectures
      selftests/filesystems/openat2: make /tmp a mountpoint inside private namespace

Eric Sandeen (1):
      devtmpfs: restore mount option reconfiguration on get_tree

Hemanth Selam (1):
      fs: fix typos in comments

Kaitao Cheng (3):
      fs/dax: Remove redundant deferred list initialization
      fs/dax: Remove unused dax_layout_busy_page()
      fs/dax: Make dax_layout_busy_page_range() static

Karl Mehltretter (2):
      fs_pin: publish pins with RCU list helpers
      docs/vfs: Fix the struct file_system_type copy

Mahad Ibrahim (1):
      selftests/filesystems: Add .gitignore for fscontext_ns_test

Manush Prajwal (3):
      fs: fix comment typo in bpf_fs_kfuncs.c
      fs: fix comment typo in fs-writeback.c
      fs: fix comment typo in inode.c

Mark Sercombe (1):
      fs/aio: fix comment typos

Mike Marshall (2):
      orangefs_super: don't wait on service operation on system shutdown.
      orangefs: use ssize_t instead of size_t for error codes...

Paul Dolan (2):
      selftests/clone3: tighten CLONE_CLEAR_SIGHAND conflict test
      selftests/pidfd: fix PPID values in error message

Ray Lee (1):
      squashfs: fix inode number description in documentation

Ricardo B. Marlière (SUSE) (1):
      selftests/namespaces: Wait for thread exit via pidfd in active-ref tests

Sang-Heon Jeon (1):
      fs: remove unused vfs_empty_path()

Tao Cui (1):
      devpts: reject max=0 instead of silently lifting the limit

Thorsten Blum (1):
      initramfs: Reduce hardlink hash allocation sizes

Xin Yin (1):
      writeback: size foreign flushes by target wb dirty pages

YANXIN LI (1):
      ufs: use u64 for directory size in ufs_last_byte

Yingchao Deng (1):
      fs: fix misleading comments in read_write.c

bui duc phuc (1):
      chardev: check return value of kobject_set_name() in __register_chrdev()

 Documentation/filesystems/squashfs.rst             |   6 +-
 Documentation/filesystems/vfs.rst                  |   2 +-
 drivers/base/devtmpfs.c                            | 108 ++++++++++++---------
 fs/aio.c                                           |  11 ++-
 fs/bpf_fs_kfuncs.c                                 |   4 +-
 fs/char_dev.c                                      |   4 +-
 fs/coredump.c                                      |   2 +-
 fs/dax.c                                           |  26 ++---
 fs/dcache.c                                        |  29 +++++-
 fs/devpts/inode.c                                  |   2 +
 fs/fs-writeback.c                                  |  23 ++---
 fs/fs_pin.c                                        |   9 +-
 fs/inode.c                                         |   2 +-
 fs/namespace.c                                     |   2 +-
 fs/nfsd/vfs.c                                      |  13 +--
 fs/nls/nls_iso8859-14.c                            |  26 +++--
 fs/orangefs/orangefs-debugfs.c                     |  10 +-
 fs/orangefs/super.c                                |  18 ++++
 fs/pipe.c                                          |   2 +-
 fs/proc/vmcore.c                                   |  20 ++++
 fs/read_write.c                                    |   8 +-
 fs/splice.c                                        |  70 +++++++++----
 fs/ufs/dir.c                                       |   2 +-
 include/linux/dax.h                                |  12 ---
 include/linux/fs.h                                 |  19 +---
 include/linux/splice.h                             |   4 +-
 include/uapi/linux/fs.h                            |   2 +-
 init/initramfs.c                                   |  11 ++-
 tools/testing/selftests/Makefile                   |   1 +
 .../selftests/clone3/clone3_clear_sighand.c        |   6 +-
 tools/testing/selftests/filesystems/.gitignore     |   1 -
 tools/testing/selftests/filesystems/Makefile       |   2 +-
 .../selftests/filesystems/file_stressor/.gitignore |   2 +
 .../selftests/filesystems/file_stressor/Makefile   |   6 ++
 .../{ => file_stressor}/file_stressor.c            |   0
 .../selftests/filesystems/file_stressor/settings   |   3 +
 .../selftests/filesystems/fscontext_ns/.gitignore  |   2 +
 .../selftests/filesystems/idmapped_tmpfile.c       |   7 ++
 tools/testing/selftests/filesystems/kernfs_test.c  |  16 ++-
 .../selftests/filesystems/openat2/openat2_test.c   |  10 +-
 .../selftests/filesystems/openat2/resolve_test.c   |   7 +-
 .../selftests/namespaces/ns_active_ref_test.c      |  29 ++++++
 tools/testing/selftests/pidfd/pidfd_open_test.c    |   2 +-
 43 files changed, 340 insertions(+), 201 deletions(-)
 create mode 100644 tools/testing/selftests/filesystems/file_stressor/.gitignore
 create mode 100644 tools/testing/selftests/filesystems/file_stressor/Makefile
 rename tools/testing/selftests/filesystems/{ => file_stressor}/file_stressor.c (100%)
 create mode 100644 tools/testing/selftests/filesystems/file_stressor/settings
 create mode 100644 tools/testing/selftests/filesystems/fscontext_ns/.gitignore

  parent reply	other threads:[~2026-10-16 10:24 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-16 10:13 [GIT PULL 00/19 for v7.4] v7.4 Christian Brauner
2026-10-16 10:14 ` [GIT PULL 01/19 for v7.4] ipc misc Christian Brauner
2026-10-16 10:15 ` [GIT PULL 02/19 for v7.4] kernel signal Christian Brauner
2026-10-16 10:15 ` [GIT PULL 03/19 for v7.4] namespace misc Christian Brauner
2026-10-16 10:16 ` [GIT PULL 04/19 for v7.4] vfs bfs Christian Brauner
2026-10-16 10:16 ` [GIT PULL 05/19 for v7.4] vfs bh Christian Brauner
2026-10-16 10:16 ` [GIT PULL 06/19 for v7.4] vfs binfmt Christian Brauner
2026-10-16 10:17 ` [GIT PULL 07/19 for v7.4] vfs close_range Christian Brauner
2026-10-16 10:18 ` [GIT PULL 08/19 for v7.4] vfs coredump Christian Brauner
2026-10-16 10:18 ` [GIT PULL 09/19 for v7.4] vfs file Christian Brauner
2026-10-16 10:19 ` [GIT PULL 10/19 for v7.4] vfs idmap Christian Brauner
2026-10-16 10:21 ` [GIT PULL 11/19 for v7.4] vfs iomap Christian Brauner
2026-10-16 10:21 ` [GIT PULL 12/19 for v7.4] vfs kernfs Christian Brauner
2026-10-16 10:22 ` [GIT PULL 13/19 for v7.4] vfs lookup Christian Brauner
2026-10-16 10:23 ` Christian Brauner [this message]
2026-10-16 10:24 ` [GIT PULL 15/19 for v7.4] vfs mount Christian Brauner
2026-10-16 10:25 ` [GIT PULL 16/19 for v7.4] vfs netfs Christian Brauner
2026-10-16 10:26 ` [GIT PULL 17/19 for v7.4] vfs shared net-next pidfd Christian Brauner
2026-10-16 10:26 ` [GIT PULL 18/19 for v7.4] vfs shared super Christian Brauner
2026-10-16 10:27 ` [GIT PULL 19/19 for v7.4] vfs sync_close Christian Brauner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261016-vfs-7.4-rc1.misc-4e00f3bd0c83@brauner \
    --to=brauner@kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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®