lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260206-vfs-misc-v70-be6f713f9fa9@brauner>
Date: Fri,  6 Feb 2026 17:50:08 +0100
From: Christian Brauner <brauner@...nel.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Christian Brauner <brauner@...nel.org>,
	linux-fsdevel@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: [GIT PULL 12/12 for v7.0] vfs misc

Hey Linus,

/* Summary */

This contains a mix of VFS cleanups, performance improvements, API fixes,
documentation, and a deprecation notice.

Scalability and performance:

 - Rework pid allocation to only take pidmap_lock once instead of twice
   during alloc_pid(), improving thread creation/teardown throughput by
   10-16% depending on false-sharing luck. Pad the namespace refcount to
   reduce false-sharing.

 - Track file lock presence via a flag in ->i_opflags instead of reading
   ->i_flctx, avoiding false-sharing with ->i_readcount on open/close
   hot paths. Measured 4-16% improvement on 24-core open-in-a-loop
   benchmarks.

 - Use a consume fence in locks_inode_context() to match the
   store-release/load-consume idiom, eliminating a hardware fence on
   some architectures.

 - Annotate cdev_lock with __cacheline_aligned_in_smp to prevent
   false-sharing.

 - Remove a redundant DCACHE_MANAGED_DENTRY check in
   __follow_mount_rcu() that never fires since the caller already
   verifies it, eliminating a 100% mispredicted branch.

 - Fix a 100% mispredicted likely() hint in devcgroup_inode_permission()
   that became wrong after a prior code reorder.

Bug fixes and correctness:

 - Make insert_inode_locked() wait for inode destruction instead of
   skipping, fixing a corner case where two matching inodes could exist
   in the hash.

 - Move f_mode initialization before file_ref_init() in alloc_file() to
   respect the SLAB_TYPESAFE_BY_RCU ordering contract.

 - Add a WARN_ON_ONCE guard in try_to_free_buffers() for folios with no
   buffers attached, preventing a null pointer dereference when
   AS_RELEASE_ALWAYS is set but no release_folio op exists.

 - Fix select restart_block to store end_time as timespec64, avoiding
   truncation of tv_sec on 32-bit architectures.

 - Make dump_inode() use get_kernel_nofault() to safely access inode and
   superblock fields, matching the dump_mapping() pattern.

API modernization:

 - Make posix_acl_to_xattr() allocate the buffer internally since every
   single caller was doing it anyway. Reduces boilerplate and
   unnecessary error checking across ~15 filesystems.

 - Replace deprecated simple_strtoul() with kstrtoul() for the
   ihash_entries, dhash_entries, mhash_entries, and mphash_entries boot
   parameters, adding proper error handling.

 - Convert chardev code to use guard(mutex) and __free(kfree) cleanup
   patterns.

 - Replace min_t() with min() or umin() in VFS code to avoid silently
   truncating unsigned long to unsigned int.

 - Gate LOOKUP_RCU assertions behind CONFIG_DEBUG_VFS since callers
   already check the flag.

Deprecation:

 - Begin deprecating legacy BSD process accounting (acct(2)). The
   interface has numerous footguns and better alternatives exist (eBPF).

Documentation:

 - Fix and complete kernel-doc for struct export_operations, removing
   duplicated documentation between ReST and source.

 - Fix kernel-doc warnings for __start_dirop() and ilookup5_nowait().

Testing:

 - Add a kunit test for initramfs cpio handling of entries with
   filesize > PATH_MAX.

Misc:

 - Add missing <linux/init_task.h> include in fs_struct.c.

/* Testing */

gcc (Debian 14.2.0-19) 14.2.0
Debian clang version 19.1.7 (3+b1)

No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

The following changes since commit 8f0b4cce4481fb22653697cced8d0d04027cb1e8:

  Linux 6.19-rc1 (2025-12-14 16:05:07 +1200)

are available in the Git repository at:

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

for you to fetch changes up to 6cbfdf89470ef3c2110f376a507d135e7a7a7378:

  posix_acl: make posix_acl_to_xattr() alloc the buffer (2026-01-16 10:51:12 +0100)

----------------------------------------------------------------
vfs-7.0-rc1.misc

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

Thanks!
Christian

----------------------------------------------------------------
Amir Goldstein (1):
      fs: move initializing f_mode before file_ref_init()

André Almeida (4):
      exportfs: Fix kernel-doc output for get_name()
      exportfs: Mark struct export_operations functions at kernel-doc
      exportfs: Complete kernel-doc for struct export_operations
      docs: exportfs: Use source code struct documentation

Bagas Sanjaya (2):
      fs: Describe @isnew parameter in ilookup5_nowait()
      VFS: fix __start_dirop() kernel-doc warnings

Ben Dooks (1):
      fs: add <linux/init_task.h> for 'init_fs'

Breno Leitao (2):
      fs/namei: Remove redundant DCACHE_MANAGED_DENTRY check in __follow_mount_rcu
      device_cgroup: remove branch hint after code refactor

Christian Brauner (3):
      Merge patch series "further damage-control lack of clone scalability"
      Merge patch series "vfs kernel-doc fixes for 6.19"
      Merge patch series "exportfs: Some kernel-doc fixes"

David Disseldorp (1):
      initramfs_test: kunit test for cpio.filesize > PATH_MAX

David Laight (1):
      fs: use min() or umin() instead of min_t()

Deepakkumar Karn (1):
      fs/buffer: add alert in try_to_free_buffers() for folios without buffers

Jeff Layton (1):
      acct(2): begin the deprecation of legacy BSD process accounting

Mateusz Guzik (7):
      fs: annotate cdev_lock with __cacheline_aligned_in_smp
      ns: pad refcount
      filelock: use a consume fence in locks_inode_context()
      pid: only take pidmap_lock once on alloc
      fs: track the inode having file locks with a flag in ->i_opflags
      fs: only assert on LOOKUP_RCU when built with CONFIG_DEBUG_VFS
      fs: make insert_inode_locked() wait for inode destruction

Miklos Szeredi (1):
      posix_acl: make posix_acl_to_xattr() alloc the buffer

Thomas Weißschuh (1):
      select: store end_time as timespec64 in restart block

Thorsten Blum (3):
      fs: Replace simple_strtoul with kstrtoul in set_ihash_entries
      dcache: Replace simple_strtoul with kstrtoul in set_dhash_entries
      namespace: Replace simple_strtoul with kstrtoul to parse boot params

Yuto Ohnuki (1):
      fs: improve dump_inode() to safely access inode fields

chen zhang (1):
      chardev: Switch to guard(mutex) and __free(kfree)

 Documentation/filesystems/nfs/exporting.rst |  42 ++-------
 fs/9p/acl.c                                 |  16 +---
 fs/btrfs/acl.c                              |  10 +--
 fs/buffer.c                                 |   6 +-
 fs/ceph/acl.c                               |  50 +++++------
 fs/char_dev.c                               |  19 ++--
 fs/dcache.c                                 |   5 +-
 fs/exec.c                                   |   2 +-
 fs/ext4/mballoc.c                           |   3 +-
 fs/ext4/resize.c                            |   2 +-
 fs/ext4/super.c                             |   2 +-
 fs/fat/dir.c                                |   4 +-
 fs/fat/file.c                               |   3 +-
 fs/file_table.c                             |  10 +--
 fs/fs_struct.c                              |   1 +
 fs/fuse/acl.c                               |  12 +--
 fs/fuse/dev.c                               |   2 +-
 fs/fuse/file.c                              |   8 +-
 fs/gfs2/acl.c                               |  13 +--
 fs/inode.c                                  |  96 ++++++++++++--------
 fs/jfs/acl.c                                |   9 +-
 fs/locks.c                                  |  14 ++-
 fs/namei.c                                  |  11 ++-
 fs/namespace.c                              |  10 +--
 fs/ntfs3/xattr.c                            |   6 +-
 fs/orangefs/acl.c                           |   8 +-
 fs/posix_acl.c                              |  21 ++---
 fs/select.c                                 |  12 +--
 fs/splice.c                                 |   2 +-
 include/linux/device_cgroup.h               |   2 +-
 include/linux/exportfs.h                    |  33 ++++---
 include/linux/filelock.h                    |  18 +++-
 include/linux/fs.h                          |   1 +
 include/linux/ns/ns_common_types.h          |   4 +-
 include/linux/posix_acl_xattr.h             |   5 +-
 include/linux/restart_block.h               |   4 +-
 init/Kconfig                                |   7 +-
 init/initramfs_test.c                       |  48 ++++++++++
 kernel/pid.c                                | 131 ++++++++++++++++++----------
 39 files changed, 357 insertions(+), 295 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ