mbox series

[GIT,PULL] vfs misc

Message ID 20250118-vfs-misc-84fb5265d102@brauner (mailing list archive)
State New
Headers show
Series [GIT,PULL] vfs misc | expand

Pull-request

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

Message

Christian Brauner Jan. 18, 2025, 12:58 p.m. UTC
Hey Linus,

/* Summary */

Features:

- Support caching symlink lengths in inodes.

  The size is stored in a new union utilizing the same space as
  i_devices, thus avoiding growing the struct or taking up any more
  space.

  When utilized it dodges strlen() in vfs_readlink(), giving about 1.5%
  speed up when issuing readlink on /initrd.img on ext4.

- Add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag.

  If a file system supports uncached buffered IO, it may set
  FOP_DONTCACHE and enable support for RWF_DONTCACHE. If RWF_DONTCACHE
  is attempted without the file system supporting it, it'll get errored
  with -EOPNOTSUPP.

- Enable VBOXGUEST and VBOXSF_FS on ARM64

  Now that VirtualBox is able to run as a host on arm64 (e.g. the Apple
  M3 processors) we can enable VBOXSF_FS (and in turn VBOXGUEST) for
  this architecture. Tested with various runs of bonnie++ and dbench on
  an Apple MacBook Pro with the latest Virtualbox 7.1.4 r165100
  installed.

Cleanups:

- Delay sysctl_nr_open check in expand_files().

- Use kernel-doc includes in fiemap docbook.

- Use page->private instead of page->index in watch_queue.

- Use a consume fence in mnt_idmap() as it's heavily used in
  link_path_walk().

- Replace magic number 7 with ARRAY_SIZE() in fc_log.

- Sort out a stale comment about races between fd alloc and dup2().

- Fix return type of do_mount() from long to int.

- Various cosmetic cleanups for the lockref code.

Fixes:

- Annotate spinning as unlikely() in __read_seqcount_begin.

  The annotation already used to be there, but got lost in
  52ac39e5db5148f7 ("seqlock: seqcount_t: Implement all read APIs as
  statement expressions").

- Fix proc_handler for sysctl_nr_open.

- Flush delayed work in delayed fput().

- Fix grammar and spelling in propagate_umount().

- Fix ESP not readable during coredump.

  In /proc/PID/stat, there is the kstkesp field which is the stack
  pointer of a thread. While the thread is active, this field reads
  zero. But during a coredump, it should have a valid value.

  However, at the moment, kstkesp is zero even during coredump.

- Don't wake up the writer if the pipe is still full.

- Fix unbalanced user_access_end() in select code.

/* Testing */

gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)

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 40384c840ea1944d7c5a392e8975ed088ecf0b37:

  Linux 6.13-rc1 (2024-12-01 14:28:56 -0800)

are available in the Git repository at:

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

for you to fetch changes up to c859df526b203497227b2b16c9bebcede67221e4:

  Merge patch series "lockref cleanups" (2025-01-16 11:48:12 +0100)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.14-rc1.misc

----------------------------------------------------------------
Christian Brauner (4):
      Merge patch series "symlink length caching"
      Merge branch 'vfs-6.14.uncached_buffered_io'
      Merge patch series "fix reading ESP during coredump"
      Merge patch series "lockref cleanups"

Christian Kujau (1):
      vbox: Enable VBOXGUEST and VBOXSF_FS on ARM64

Christoph Hellwig (8):
      lockref: remove lockref_put_not_zero
      lockref: improve the lockref_get_not_zero description
      lockref: use bool for false/true returns
      lockref: drop superfluous externs
      lockref: add a lockref_init helper
      dcache: use lockref_init for d_lockref
      erofs: use lockref_init for pcl->lockref
      gfs2: use lockref_init for qd_lockref

Christophe Leroy (1):
      select: Fix unbalanced user_access_end()

Guo Weikang (1):
      fs: fc_log replace magic number 7 with ARRAY_SIZE()

Jens Axboe (1):
      fs: add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag

Jinliang Zheng (1):
      fs: fix proc_handler for sysctl_nr_open

Mateusz Guzik (7):
      fs: delay sysctl_nr_open check in expand_files()
      vfs: support caching symlink lengths in inodes
      seqlock: annotate spinning as unlikely() in __read_seqcount_begin
      ext4: use inode_set_cached_link()
      tmpfs: use inode_set_cached_link()
      fs: use a consume fence in mnt_idmap()
      fs: sort out a stale comment about races between fd alloc and dup2

Matthew Wilcox (Oracle) (1):
      watch_queue: Use page->private instead of page->index

Nam Cao (2):
      fs/proc: do_task_stat: Fix ESP not readable during coredump
      selftests: coredump: Add stackdump test

Oleg Nesterov (1):
      pipe_read: don't wake up the writer if the pipe is still full

Randy Dunlap (1):
      fiemap: use kernel-doc includes in fiemap docbook

Sentaro Onizuka (1):
      fs: Fix return type of do_mount() from long to int

Zhu Jun (1):
      fs: Fix grammar and spelling in propagate_umount()

shao mingyin (1):
      file: flush delayed work in delayed fput()

 Documentation/filesystems/fiemap.rst              |  49 +++----
 drivers/virt/vboxguest/Kconfig                    |   2 +-
 fs/dcache.c                                       |   3 +-
 fs/erofs/zdata.c                                  |   3 +-
 fs/ext4/inode.c                                   |   3 +-
 fs/ext4/namei.c                                   |   4 +-
 fs/file.c                                         |  22 +---
 fs/file_table.c                                   |   7 +-
 fs/fs_context.c                                   |   2 +-
 fs/gfs2/quota.c                                   |   3 +-
 fs/namei.c                                        |  34 ++---
 fs/namespace.c                                    |   2 +-
 fs/pipe.c                                         |  19 +--
 fs/pnode.c                                        |   8 +-
 fs/proc/array.c                                   |   2 +-
 fs/proc/namespaces.c                              |   2 +-
 fs/select.c                                       |   4 +-
 fs/vboxsf/Kconfig                                 |   2 +-
 include/linux/fiemap.h                            |  16 ++-
 include/linux/fs.h                                |  29 ++++-
 include/linux/lockref.h                           |  26 ++--
 include/linux/mount.h                             |   4 +-
 include/linux/seqlock.h                           |   2 +-
 include/uapi/linux/fiemap.h                       |  47 +++++--
 include/uapi/linux/fs.h                           |   6 +-
 kernel/watch_queue.c                              |   4 +-
 lib/lockref.c                                     |  60 +++------
 mm/shmem.c                                        |   6 +-
 security/apparmor/apparmorfs.c                    |   2 +-
 tools/testing/selftests/coredump/Makefile         |   7 +
 tools/testing/selftests/coredump/README.rst       |  50 +++++++
 tools/testing/selftests/coredump/stackdump        |  14 ++
 tools/testing/selftests/coredump/stackdump_test.c | 151 ++++++++++++++++++++++
 33 files changed, 415 insertions(+), 180 deletions(-)
 create mode 100644 tools/testing/selftests/coredump/Makefile
 create mode 100644 tools/testing/selftests/coredump/README.rst
 create mode 100755 tools/testing/selftests/coredump/stackdump
 create mode 100644 tools/testing/selftests/coredump/stackdump_test.c