linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] vfs misc
@ 2025-03-22 10:12 Christian Brauner
  2025-03-24 16:20 ` Linus Torvalds
  2025-03-24 21:00 ` pr-tracker-bot
  0 siblings, 2 replies; 18+ messages in thread
From: Christian Brauner @ 2025-03-22 10:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

Features:

- Add CONFIG_DEBUG_VFS infrastucture:

  - Catch invalid modes in open.

  - Use the new debug macros in inode_set_cached_link().

  - Use debug-only asserts around fd allocation and install.

- Place f_ref to 3rd cache line in struct file to resolve false sharing.

Cleanups:

- Start using anon_inode_getfile_fmode() helper in various places.

- Don't take f_lock during SEEK_CUR if exclusion is guaranteed by f_pos_lock.

- Add unlikely() to kcmp().

- Remove legacy ->remount_fs method from ecryptfs after port to the new mount api.

- Remove invalidate_inodes() in favour of evict_inodes().

- Simplify ep_busy_loopER by removing unused argument.

- Avoid mmap sem relocks when coredumping with many missing pages.

- Inline getname().

- Inline new_inode_pseudo() and de-staticize alloc_inode().

- Dodge an atomic in putname if ref == 1.

- Consistently deref the files table with rcu_dereference_raw().

- Dedup handling of struct filename init and refcounts bumps.

- Use wq_has_sleeper() in end_dir_add().

- Drop the lock trip around I_NEW wake up in evict().

- Load the ->i_sb pointer once in inode_sb_list_{add,del}.

- Predict not reaching the limit in alloc_empty_file().

- Tidy up do_sys_openat2() with likely/unlikely.

- Call inode_sb_list_add() outside of inode hash lock.

- Sort out fd allocation vs dup2 race commentary.

- Turn page_offset() into a wrapper around folio_pos().

- Remove locking in exportfs around ->get_parent() call.

- try_lookup_one_len() does not need any locks in autofs.

- Fix return type of several functions from long to int in open.

- Fix return type of several functions from long to int in ioctls.

Fixes:

- Fix watch queue accounting mismatch.

/* 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
=============================

This contains a minor merge conflict for include/linux/fs.h.

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

No known conflicts.

The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:

  Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)

are available in the Git repository at:

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

for you to fetch changes up to 4dec4f91359c456a5eea26817ea151b42953432e:

  fs: sort out fd allocation vs dup2 race commentary, take 2 (2025-03-20 15:17:56 +0100)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.15-rc1.misc

----------------------------------------------------------------
Al Viro (1):
      make use of anon_inode_getfile_fmode()

Christian Brauner (3):
      Merge patch series "CONFIG_DEBUG_VFS at last"
      Merge patch series "Fix the return type of several functions from long to int"
      fs: don't needlessly acquire f_lock

Colin Ian King (1):
      kcmp: improve performance adding an unlikely hint to task comparisons

Eric Sandeen (2):
      watch_queue: fix pipe accounting mismatch
      ecryptfs: remove NULL remount_fs from super_operations

Jan Kara (1):
      vfs: Remove invalidate_inodes()

Lin Feng (1):
      epoll: simplify ep_busy_loop by removing always 0 argument

Mateusz Guzik (17):
      vfs: add initial support for CONFIG_DEBUG_VFS
      vfs: catch invalid modes in may_open()
      vfs: use the new debug macros in inode_set_cached_link()
      fs: avoid mmap sem relocks when coredumping with many missing pages
      vfs: inline getname()
      vfs: inline new_inode_pseudo() and de-staticize alloc_inode()
      fs: dodge an atomic in putname if ref == 1
      fs: use debug-only asserts around fd allocation and install
      fs: consistently deref the files table with rcu_dereference_raw()
      fs: dedup handling of struct filename init and refcounts bumps
      fs: use wq_has_sleeper() in end_dir_add()
      fs: drop the lock trip around I_NEW wake up in evict()
      fs: load the ->i_sb pointer once in inode_sb_list_{add,del}
      fs: predict not reaching the limit in alloc_empty_file()
      fs: tidy up do_sys_openat2() with likely/unlikely
      fs: call inode_sb_list_add() outside of inode hash lock
      fs: sort out fd allocation vs dup2 race commentary, take 2

Matthew Wilcox (Oracle) (1):
      fs: Turn page_offset() into a wrapper around folio_pos()

NeilBrown (2):
      exportfs: remove locking around ->get_parent() call.
      VFS/autofs: try_lookup_one_len() does not need any locks

Pan Deng (1):
      fs: place f_ref to 3rd cache line in struct file to resolve false sharing

Yuichiro Tsuji (2):
      open: Fix return type of several functions from long to int
      ioctl: Fix return type of several functions from long to int

 Documentation/filesystems/porting.rst     |   5 ++
 arch/arm64/kernel/elfcore.c               |   3 +-
 arch/powerpc/platforms/pseries/papr-vpd.c |   7 +-
 drivers/vfio/group.c                      |  16 +---
 fs/autofs/dev-ioctl.c                     |   3 -
 fs/cachefiles/ondemand.c                  |   7 +-
 fs/coredump.c                             |  38 +++++++--
 fs/dcache.c                               |   3 +-
 fs/ecryptfs/super.c                       |   1 -
 fs/eventfd.c                              |   5 +-
 fs/eventpoll.c                            |   8 +-
 fs/exportfs/expfs.c                       |   2 -
 fs/file.c                                 |  81 +++++++++++++------
 fs/file_table.c                           |   3 +-
 fs/inode.c                                | 127 +++++++++++-------------------
 fs/internal.h                             |   6 +-
 fs/ioctl.c                                |  10 +--
 fs/namei.c                                |  42 +++++-----
 fs/open.c                                 |  29 +++----
 fs/read_write.c                           |  13 ++-
 fs/signalfd.c                             |   7 +-
 fs/smb/client/file.c                      |   2 +-
 fs/super.c                                |   2 +-
 fs/timerfd.c                              |   6 +-
 include/linux/fs.h                        |  36 ++++++---
 include/linux/mm.h                        |   2 +-
 include/linux/pagemap.h                   |  20 ++---
 include/linux/syscalls.h                  |   4 +-
 include/linux/vfsdebug.h                  |  45 +++++++++++
 kernel/auditsc.c                          |  12 ++-
 kernel/kcmp.c                             |   2 +-
 kernel/watch_queue.c                      |   9 +++
 lib/Kconfig.debug                         |   9 +++
 mm/gup.c                                  |   6 +-
 security/landlock/fs.c                    |   2 +-
 virt/kvm/kvm_main.c                       |  11 +--
 36 files changed, 339 insertions(+), 245 deletions(-)
 create mode 100644 include/linux/vfsdebug.h

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2025-01-18 12:58 Christian Brauner
  2025-01-20 18:59 ` pr-tracker-bot
  0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2025-01-18 12:58 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

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

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-11-15 13:56 Christian Brauner
  2024-11-18 19:49 ` pr-tracker-bot
  0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-11-15 13:56 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

Features:

    - Fixup and improve NLM and kNFSD file lock callbacks.

      Last year both GFS2 and OCFS2 had some work done to make their
      locking more robust when exported over NFS. Unfortunately, part of
      that work caused both NLM (for NFS v3 exports) and kNFSD (for
      NFSv4.1+ exports) to no longer send lock notifications to clients.

      This in itself is not a huge problem because most NFS clients will
      still poll the server in order to acquire a conflicted lock.

      Its important for NLM and kNFSD that they do not block their
      kernel threads inside filesystem's file_lock implementations
      because that can produce deadlocks. We used to make sure of this
      by only trusting that posix_lock_file() can correctly handle
      blocking lock calls asynchronously, so the lock managers would
      only setup their file_lock requests for async callbacks if the
      filesystem did not define its own lock() file operation.

      However, when GFS2 and OCFS2 grew the capability to correctly
      handle blocking lock requests asynchronously, they started
      signalling this behavior with EXPORT_OP_ASYNC_LOCK, and the check
      for also trusting posix_lock_file() was inadvertently dropped, so
      now most filesystems no longer produce lock notifications when
      exported over NFS.

      Fix this by using an fop_flag which greatly simplifies the problem
      and grooms the way for future uses by both filesystems and lock
      managers alike.

    -  Add a sysctl to delete the dentry when a file is removed instead
       of making it a negative dentry.

       Commit 681ce8623567 ("vfs: Delete the associated dentry when
       deleting a file") introduced an unconditional deletion of the
       associated dentry when a file is removed. However, this led to
       performance regressions in specific benchmarks, such as
       ilebench.sum_operations/s, prompting a revert in commit
       4a4be1ad3a6e ("Revert "vfs: Delete the associated dentry when
       deleting a file""). This reintroduces the concept conditionally
       through a sysctl.

    - Expand the statmount() system call:

	  * Report the filesystem subtype in a new fs_subtype field to
	    e.g., report fuse filesystem subtypes.

          * Report the superblock source in a new sb_source field.

	  * Add a new way to return filesystem specific mount options in
	    an option array that returns filesystem specific mount
	    options separated by zero bytes and unescaped. This allows
	    caller's to retrieve filesystem specific mount options and
	    immediately pass them to e.g., fsconfig() without having to
	    unescape or split them.

	  * Report security (LSM) specific mount options in a separate
	    security option array. We don't lump them together with
	    filesystem specific mount options as security mount options
	    are generic and most users aren't interested in them.

	    The format is the same as for the filesystem specific mount
	    option array.

    - Support relative paths in fsconfig()'s FSCONFIG_SET_STRING command.

    - Optimize acl_permission_check() to avoid costly {g,u}id ownership
      checks if possible.

    - Use smp_mb__after_spinlock() to avoid full smp_mb() in evict().

    - Add synchronous wakeup support for ep_poll_callback.
      Currently, epoll only uses wake_up() to wake up task. But
      sometimes there are epoll users which want to use
      the synchronous wakeup flag to give a hint to the scheduler, e.g.,
      the Android binder driver. So add a wake_up_sync() define, and use
      wake_up_sync() when sync is true in ep_poll_callback().

Fixes:

    - Fix kernel documentation for inode_insert5() and iget5_locked().

    - Annotate racy epoll check on file->f_ep.

    - Make F_DUPFD_QUERY associative.

    - Avoid filename buffer overrun in initramfs.

    - Don't let statmount() return empty strings.

    - Add a cond_resched() to dump_user_range() to avoid hogging the CPU.

    - Don't query the device logical blocksize multiple times for hfsplus.

    - Make filemap_read() check that the offset is positive or zero.

Cleanups:

    - Various typo fixes.

    - Cleanup wbc_attach_fdatawrite_inode().

    - Add __releases annotation to wbc_attach_and_unlock_inode().

    - Add hugetlbfs tracepoints.

    - Fix various vfs kernel doc parameters.

    - Remove obsolete TODO comment from io_cancel().

    - Convert wbc_account_cgroup_owner() to take a folio.

    - Fix comments for BANDWITH_INTERVAL and wb_domain_writeout_add().

    - Reorder struct posix_acl to save 8 bytes.

    - Annotate struct posix_acl with __counted_by().

    - Replace one-element array with flexible array member in freevxfs.

    - Use idiomatic atomic64_inc_return() in alloc_mnt_ns().

/* Testing */

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

All patches are based on v6.12-rc1 and have been sitting in linux-next.
No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

No known conflicts.

(1) linux-next: manual merge of the vfs-brauner tree with the nfsd tree
    https://lore.kernel.org/r/20241024081515.1cd254a0@canb.auug.org.au

The following changes since commit 9852d85ec9d492ebef56dc5f229416c925758edc:

  Linux 6.12-rc1 (2024-09-29 15:06:19 -0700)

are available in the Git repository at:

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

for you to fetch changes up to aefff51e1c2986e16f2780ca8e4c97b784800ab5:

  statmount: retrieve security mount options (2024-11-14 17:03:25 +0100)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.13.misc

----------------------------------------------------------------
Andreas Gruenbacher (1):
      vfs: inode insertion kdoc corrections

Andrew Kreimer (1):
      fs/inode: Fix a typo

Benjamin Coddington (4):
      fs: Introduce FOP_ASYNC_LOCK
      gfs2/ocfs2: set FOP_ASYNC_LOCK
      NLM/NFSD: Fix lock notifications for async-capable filesystems
      exportfs: Remove EXPORT_OP_ASYNC_LOCK

Christian Brauner (7):
      Merge patch series "Fixup NLM and kNFSD file lock callbacks"
      Merge patch series "Introduce tracepoint for hugetlbfs"
      epoll: annotate racy check
      fcntl: make F_DUPFD_QUERY associative
      Merge patch series "fs: allow statmount to fetch the fs_subtype and sb_source"
      Merge patch series "two little writeback cleanups v2"
      statmount: retrieve security mount options

Christoph Hellwig (2):
      writeback: add a __releases annoation to wbc_attach_and_unlock_inode
      writeback: wbc_attach_fdatawrite_inode out of line

David Disseldorp (1):
      initramfs: avoid filename buffer overrun

Hongbo Li (3):
      hugetlbfs: support tracepoint
      hugetlbfs: use tracepoints in hugetlbfs functions.
      fs: support relative paths with FSCONFIG_SET_STRING

Jeff Layton (3):
      fs: don't let statmount return empty strings
      fs: add the ability for statmount() to report the fs_subtype
      fs: add the ability for statmount() to report the sb_source

Julia Lawall (1):
      fs: Reorganize kerneldoc parameter names

Linus Torvalds (1):
      fs: optimize acl_permission_check()

Mateusz Guzik (1):
      vfs: make evict() use smp_mb__after_spinlock instead of smp_mb

Miklos Szeredi (1):
      statmount: add flag to retrieve unescaped options

Mohammed Anees (1):
      fs:aio: Remove TODO comment suggesting hash or array usage in io_cancel()

Pankaj Raghav (1):
      fs/writeback: convert wbc_account_cgroup_owner to take a folio

Rik van Riel (1):
      coredump: add cond_resched() to dump_user_range

Tang Yizhou (2):
      mm/page-writeback.c: Update comment for BANDWIDTH_INTERVAL
      mm/page-writeback.c: Fix comment of wb_domain_writeout_add()

Thadeu Lima de Souza Cascardo (1):
      hfsplus: don't query the device logical block size multiple times

Thorsten Blum (3):
      acl: Realign struct posix_acl to save 8 bytes
      acl: Annotate struct posix_acl with __counted_by()
      freevxfs: Replace one-element array with flexible array member

Trond Myklebust (1):
      filemap: filemap_read() should check that the offset is positive or zero

Uros Bizjak (1):
      namespace: Use atomic64_inc_return() in alloc_mnt_ns()

Xuewen Yan (1):
      epoll: Add synchronous wakeup support for ep_poll_callback

Yafang Shao (1):
      vfs: Add a sysctl for automated deletion of dentry

 Documentation/admin-guide/cgroup-v2.rst     |   2 +-
 Documentation/admin-guide/sysctl/fs.rst     |   5 +
 Documentation/filesystems/nfs/exporting.rst |   7 --
 MAINTAINERS                                 |   1 +
 fs/aio.c                                    |   1 -
 fs/btrfs/extent_io.c                        |   7 +-
 fs/btrfs/inode.c                            |   2 +-
 fs/buffer.c                                 |   4 +-
 fs/char_dev.c                               |   2 +-
 fs/coredump.c                               |   1 +
 fs/dcache.c                                 |  16 ++-
 fs/eventpoll.c                              |  11 +-
 fs/ext4/page-io.c                           |   2 +-
 fs/f2fs/data.c                              |   9 +-
 fs/fcntl.c                                  |   3 +
 fs/freevxfs/vxfs_dir.h                      |   2 +-
 fs/fs-writeback.c                           |  40 +++++--
 fs/fs_parser.c                              |   1 +
 fs/gfs2/export.c                            |   1 -
 fs/gfs2/file.c                              |   2 +
 fs/hfsplus/hfsplus_fs.h                     |   3 +-
 fs/hfsplus/wrapper.c                        |   2 +
 fs/hugetlbfs/inode.c                        |  17 ++-
 fs/inode.c                                  |  29 +++--
 fs/iomap/buffered-io.c                      |   2 +-
 fs/lockd/svclock.c                          |   7 +-
 fs/mpage.c                                  |   2 +-
 fs/namei.c                                  |  41 +++++++
 fs/namespace.c                              | 161 ++++++++++++++++++++++++++--
 fs/nfsd/nfs4state.c                         |  19 +---
 fs/ocfs2/export.c                           |   1 -
 fs/ocfs2/file.c                             |   2 +
 fs/posix_acl.c                              |  13 ++-
 fs/seq_file.c                               |   2 +-
 include/linux/eventpoll.h                   |   2 +-
 include/linux/exportfs.h                    |  13 ---
 include/linux/filelock.h                    |   5 +
 include/linux/fs.h                          |   2 +
 include/linux/posix_acl.h                   |   6 +-
 include/linux/wait.h                        |   1 +
 include/linux/writeback.h                   |  32 +-----
 include/trace/events/hugetlbfs.h            | 156 +++++++++++++++++++++++++++
 include/uapi/linux/mount.h                  |  14 ++-
 init/initramfs.c                            |  15 +++
 mm/filemap.c                                |   2 +
 mm/page-writeback.c                         |   4 +-
 46 files changed, 531 insertions(+), 141 deletions(-)
 create mode 100644 include/trace/events/hugetlbfs.h

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-09-13 14:41 Christian Brauner
  2024-09-16  7:34 ` pr-tracker-bot
  0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-09-13 14:41 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This contains the usual pile of misc updates:

Features:

    - Add F_CREATED_QUERY fcntl() that allows userspace to query whether a
      file was actually created. Often userspace wants to know whether an
      O_CREATE request did actually create a file without using O_EXCL. The
      current logic is that to first attempts to open the file without
      O_CREAT | O_EXCL and if ENOENT is returned userspace tries again with
      both flags. If that succeeds all is well. If it now reports EEXIST it
      retries.

      That works fairly well but some corner cases make this more involved.
      If this operates on a dangling symlink the first openat() without
      O_CREAT | O_EXCL will return ENOENT but the second openat() with
      O_CREAT | O_EXCL will fail with EEXIST. The reason is that openat()
      without O_CREAT | O_EXCL follows the symlink while O_CREAT | O_EXCL
      doesn't for security reasons. So it's not something we can really
      change unless we add an explicit opt-in via O_FOLLOW which seems
      really ugly.

      All available workarounds are really nasty (fanotify, bpf lsm etc) so
      add a simple fcntl().

    - Try an opportunistic lookup for O_CREAT. Today, when opening a file
      we'll typically do a fast lookup, but if O_CREAT is set, the kernel
      always takes the exclusive inode lock. This was likely done with the
      expectation that O_CREAT means that we always expect to do the create,
      but that's often not the case. Many programs set O_CREAT even in
      scenarios where the file already exists (see related F_CREATED_QUERY
      patch motivation above).

      The series contained in the pr rearranges the pathwalk-for-open code
      to also attempt a fast_lookup in certain O_CREAT cases. If a positive
      dentry is found, the inode_lock can be avoided altogether and it can
      stay in rcuwalk mode for the last step_into.

    - Expose the 64 bit mount id via name_to_handle_at().
      Now that we provide a unique 64-bit mount ID interface in statx(2), we
      can now provide a race-free way for name_to_handle_at(2) to provide a
      file handle and corresponding mount without needing to worry about
      racing with /proc/mountinfo parsing or having to open a file just to
      do statx(2).

      While this is not necessary if you are using AT_EMPTY_PATH and don't
      care about an extra statx(2) call, users that pass full paths into
      name_to_handle_at(2) need to know which mount the file handle comes
      from (to make sure they don't try to open_by_handle_at a file handle
      from a different filesystem) and switching to AT_EMPTY_PATH would
      require allocating a file for every name_to_handle_at(2) call

    - Add a per dentry expire timeout to autofs.
      There are two fairly well known automounter map formats, the autofs
      format and the amd format (more or less System V and Berkley).

      Some time ago Linux autofs added an amd map format parser that
      implemented a fair amount of the amd functionality. This was done
      within the autofs infrastructure and some functionality wasn't
      implemented because it either didn't make sense or required extra
      kernel changes. The idea was to restrict changes to be within the
      existing autofs functionality as much as possible and leave changes
      with a wider scope to be considered later.

      One of these changes is implementing the amd options:
      1) "unmount", expire this mount according to a timeout (same as the
         current autofs default).
      2) "nounmount", don't expire this mount (same as setting the autofs
         timeout to 0 except only for this specific mount) .
      3) "utimeout=<seconds>", expire this mount using the specified
         timeout (again same as setting the autofs timeout but only for
         this mount).

      To implement these options per-dentry expire timeouts need to be
      implemented for autofs indirect mounts. This is because all map keys
      (mounts) for autofs indirect mounts use an expire timeout stored in
      the autofs mount super block info. structure and all indirect mounts
      use the same expire timeout.

Fixes:

    - Fix missing fput for FSCONFIG_SET_FD in autofs.

    - Use param->file for FSCONFIG_SET_FD in coda.

    - Delete the 'fs/netfs' proc subtreee when netfs module exits.

    - Make sure that struct uid_gid_map fits into a single cacheline.

    - Don't flush in-flight wb switches for superblocks without cgroup writeback.

    - Correcting the idmapping mount example in the idmapping documentation.

    - Fix a race between evice_inodes() and find_inode() and iput().

    - Refine the show_inode_state() macro definition in writeback code.

    - Prevent dump_mapping() from accessing invalid dentry.d_name.name.

    - Show actual source for debugfs in /proc/mounts.

    - Annotate data-race of busy_poll_usecs in eventpoll.

    - Don't WARN for racy path_noexec check in exec code.

    - Handle OOM on mnt_warn_timestamp_expiry().

    - Fix some spelling in the iomap design documentation.

    - Fix typo in procfs comment.

    - Fix typo in fs/namespace.c comment

Cleanups:

    - Add the VFS git tree to the MAINTAINERS file.

    - Move FMODE_UNSIGNED_OFFSET to fop_flags freeing up another f_mode bit
      in struct file bringing us to 5 free f_mode bits.

    - Remove the __I_DIO_WAKEUP bit from i_state flags as we can simplify
      the wait mechanism.

    - Remove the unused path_put_init() helper.

    - Replace a __u32 with u32 for s_fsnotify_mask as __u32 is uapi specific.

    - Replace the unsigned long i_state member with a u32 i_state member in
      struct inode freeing up 4 bytes in struct inode. Instead of using
      the bit based wait apis we're now using the var event apis and using
      the individual bytes of the i_state member to wait on state changes.

    - Explain how per-syscall AT_* flags should be allocated.

    - Use in_group_or_capable() helper to simplify the posix acl mode update
      code.

    - Switch to LIST_HEAD() in fsync_buffers_list() to simplify the code.

    - Removed comment about d_rcu_to_refcount() as that function doesn't
      exist anymore.

    - Add kernel documentation for lookup_fast().

    - Don't re-zero evenpoll fields.

    - Remove outdated comment after close_fd().

    - Fix imprecise wording in comment about the pipe filesystem.

    - Drop GFP_NOFAIL mode from alloc_page_buffers.

    - Missing blank line warnings and struct declaration improved in file_table.

    - Annotate struct poll_list with __counted_by()

    - Remove the unused read parameter in percpu-rwsem.

    - Remove linux/prefetch.h include from direct-io code.

    - Use kmemdup_array instead of kmemdup for multiple allocation in
      mnt_idmapping code.

    - Remove unused mnt_cursor_del() declaration.

Performance tweaks:

    - Dodge smp_mb in break_lease and break_deleg in the common case.

    - Only read fops once in fops_{get,put}().

    - Use RCU in ilookup().

    - Elide smp_mb in iversion handling in the common case.

    - Drop one lock trip in evict().

/* Testing */

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

All patches are based on v6.11-rc4 and have been sitting in linux-next.
No build failures or warnings were observed.

/* Conflicts */

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

No known conflicts.

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

(1) This will have merge conflict with the vfs.file pull request sent as:
    https://lore.kernel.org/r/20240913-vfs-file-53bf57c94647@brauner

    I've provided the conflict resolution there.

(2) This will also very likely cause a merge conflict with the series
    to convert everything to fd_file() accessors. Because we change:

-static int coda_parse_fd(struct fs_context *fc, int fd)
+static int coda_set_idx(struct fs_context *fc, struct file *file)
 {
        struct coda_fs_context *ctx = fc->fs_private;
-       struct fd f;
        struct inode *inode;
        int idx;

-       f = fdget(fd);
-       if (!f.file)
-               return -EBADF;
-       inode = file_inode(f.file);
+       inode = file_inode(file);
        if (!S_ISCHR(inode->i_mode) || imajor(inode) != CODA_PSDEV_MAJOR) {
-               fdput(f);
-               return invalf(fc, "code: Not coda psdev");
+               return invalf(fc, "coda: Not coda psdev");
        }
-
        idx = iminor(inode);
-       fdput(f);
-
        if (idx < 0 || idx >= MAX_CODADEVS)
                return invalf(fc, "coda: Bad minor number");
        ctx->idx = idx;
        return 0;
 }

which removes the raw f.file access so the fd_file() replacement becomes mute.

The following changes since commit 47ac09b91befbb6a235ab620c32af719f8208399:

  Linux 6.11-rc4 (2024-08-18 13:17:27 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 2077006d4725c82c6e9612cec3a6c140921b067f:

  uidgid: make sure we fit into one cacheline (2024-09-12 12:16:09 +0200)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.12.misc

----------------------------------------------------------------
Aleksa Sarai (4):
      autofs: fix missing fput for FSCONFIG_SET_FD
      coda: use param->file for FSCONFIG_SET_FD
      uapi: explain how per-syscall AT_* flags should be allocated
      fhandle: expose u64 mount id to name_to_handle_at(2)

Baokun Li (1):
      netfs: Delete subtree of 'fs/netfs' when netfs module exits

Christian Brauner (20):
      fcntl: add F_CREATED_QUERY
      selftests: add F_CREATED_QUERY tests
      Merge patch series "Add an fcntl() to check file creation"
      fs: move audit parent inode
      fs: pull up trailing slashes check for O_CREAT
      fs: remove audit dummy context check
      fs: rearrange general fastpath check now that O_CREAT uses it
      fs: move FMODE_UNSIGNED_OFFSET to fop_flags
      inode: remove __I_DIO_WAKEUP
      fs: remove unused path_put_init()
      fs: s/__u32/u32/ for s_fsnotify_mask
      fs: add i_state helpers
      fs: reorder i_state bits
      inode: port __I_SYNC to var event
      inode: port __I_NEW to var event
      inode: port __I_LRU_ISOLATING to var event
      inode: make i_state a u32
      Merge patch series "fs: add i_state helpers"
      Merge patch series "fhandle: expose u64 mount id to name_to_handle_at(2)"
      uidgid: make sure we fit into one cacheline

Eric Biggers (1):
      MAINTAINERS: add the VFS git tree

Haifeng Xu (1):
      fs: don't flush in-flight wb switches for superblocks without cgroup writeback

Hongbo Li (3):
      fs: Use in_group_or_capable() helper to simplify the code
      doc: correcting the idmapping mount example
      fs: use LIST_HEAD() to simplify code

Ian Kent (1):
      autofs: add per dentry expire timeout

Jeff Layton (3):
      fs: remove comment about d_rcu_to_refcount
      fs: add a kerneldoc header over lookup_fast
      fs: try an opportunistic lookup for O_CREAT opens too

Joe Damato (1):
      eventpoll: Don't re-zero eventpoll fields

Joel Savitz (1):
      file: remove outdated comment after close_fd()

Julian Sun (2):
      vfs: fix race between evice_inodes() and find_inode()&iput()
      writeback: Refine the show_inode_state() macro definition

Kienan Stewart (1):
      fs/pipe: Correct imprecise wording in comment

Li Zhijian (1):
      fs/inode: Prevent dump_mapping() accessing invalid dentry.d_name.name

Marc Aurèle La France (1):
      debugfs show actual source in /proc/mounts

Martin Karsten (1):
      eventpoll: Annotate data-race of busy_poll_usecs

Mateusz Guzik (6):
      exec: don't WARN for racy path_noexec check
      vfs: dodge smp_mb in break_lease and break_deleg in the common case
      vfs: only read fops once in fops_get/put
      vfs: use RCU in ilookup
      vfs: elide smp_mb in iversion handling in the common case
      vfs: drop one lock trip in evict()

Michal Hocko (1):
      fs: drop GFP_NOFAIL mode from alloc_page_buffers

Mohit0404 (1):
      Fixed: fs: file_table_c: Missing blank line warnings and struct declaration improved

Olaf Hering (1):
      mount: handle OOM on mnt_warn_timestamp_expiry

Thorsten Blum (1):
      fs/select: Annotate struct poll_list with __counted_by()

Uros Bizjak (1):
      fs/aio: Fix __percpu annotation of *cpu pointer in struct kioctx

Wang Long (1):
      percpu-rwsem: remove the unused parameter 'read'

Xiaxi Shen (1):
      Fix spelling and gramatical errors

Yan Zhen (1):
      proc: Fix typo in the comment

Youling Tang (1):
      fs/direct-io: Remove linux/prefetch.h include

Yu Jiaoliang (1):
      mnt_idmapping: Use kmemdup_array instead of kmemdup for multiple allocation

Yue Haibing (1):
      fs: mounts: Remove unused declaration mnt_cursor_del()

Yuesong Li (1):
      fs/namespace.c: Fix typo in comment

 Documentation/filesystems/idmappings.rst        |   8 +-
 Documentation/filesystems/iomap/design.rst      |   6 +-
 MAINTAINERS                                     |   1 +
 drivers/char/adi.c                              |   8 +-
 drivers/char/mem.c                              |   3 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c         |   1 +
 drivers/gpu/drm/drm_file.c                      |   3 +-
 drivers/gpu/drm/gma500/psb_drv.c                |   1 +
 drivers/gpu/drm/i915/i915_driver.c              |   1 +
 drivers/gpu/drm/nouveau/nouveau_drm.c           |   1 +
 drivers/gpu/drm/radeon/radeon_drv.c             |   1 +
 drivers/gpu/drm/tegra/drm.c                     |   1 +
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c             |   1 +
 drivers/gpu/drm/xe/xe_device.c                  |   1 +
 drivers/md/md-bitmap.c                          |   2 +-
 fs/aio.c                                        |   2 +-
 fs/autofs/autofs_i.h                            |   4 +
 fs/autofs/dev-ioctl.c                           |  97 +++++++++++++++++++-
 fs/autofs/expire.c                              |   7 +-
 fs/autofs/inode.c                               |   5 +-
 fs/bcachefs/fs.c                                |  10 +-
 fs/buffer.c                                     |   8 +-
 fs/coda/inode.c                                 |  43 ++++++---
 fs/dcache.c                                     |  10 +-
 fs/debugfs/inode.c                              |   8 ++
 fs/direct-io.c                                  |   6 --
 fs/eventpoll.c                                  |   7 +-
 fs/exec.c                                       |  31 +++----
 fs/fcntl.c                                      |  10 ++
 fs/fhandle.c                                    |  29 ++++--
 fs/file.c                                       |   2 +-
 fs/file_table.c                                 |   5 +-
 fs/fs-writeback.c                               |  67 ++++++++------
 fs/inode.c                                      | 116 ++++++++++++++++--------
 fs/libfs.c                                      |  28 ++++--
 fs/mnt_idmapping.c                              |  12 +--
 fs/mount.h                                      |   1 -
 fs/namei.c                                      |  75 ++++++++++++---
 fs/namespace.c                                  |  18 +++-
 fs/netfs/locking.c                              |  22 +----
 fs/netfs/main.c                                 |   4 +-
 fs/pipe.c                                       |   2 +-
 fs/posix_acl.c                                  |   4 +-
 fs/proc/base.c                                  |  10 +-
 fs/proc/fd.c                                    |   2 +-
 fs/proc/kcore.c                                 |   2 +-
 fs/read_write.c                                 |   2 +-
 fs/select.c                                     |   2 +-
 fs/super.c                                      |   4 +-
 include/drm/drm_accel.h                         |   3 +-
 include/drm/drm_gem.h                           |   3 +-
 include/drm/drm_gem_dma_helper.h                |   1 +
 include/linux/buffer_head.h                     |   3 +-
 include/linux/filelock.h                        |  14 ++-
 include/linux/fs.h                              |  88 +++++++++++-------
 include/linux/path.h                            |   6 --
 include/linux/percpu-rwsem.h                    |   2 +-
 include/linux/syscalls.h                        |   2 +-
 include/linux/user_namespace.h                  |   6 +-
 include/linux/writeback.h                       |   7 +-
 include/trace/events/writeback.h                |  10 +-
 include/uapi/linux/auto_fs.h                    |   2 +-
 include/uapi/linux/fcntl.h                      |  84 ++++++++++++-----
 kernel/user.c                                   |   6 +-
 mm/mmap.c                                       |   2 +-
 tools/testing/selftests/core/close_range_test.c |  39 ++++++++
 66 files changed, 662 insertions(+), 310 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-05-10 11:46 Christian Brauner
  2024-05-13 19:38 ` pr-tracker-bot
  0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-05-10 11:46 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */
This contains the usual miscellaneous features, cleanups, and fixes for
vfs and individual fses.

Features
========

* Free up FMODE_* bits. I've freed up bits 6, 7, 8, and 24. That means
  we now have six free FMODE_* bits in total.

* Add FOP_HUGE_PAGES flag (follow-up to FMODE_* cleanup).

* Add fd_raw cleanup class so we can make use of automatic cleanup
  provided by CLASS(fd_raw, f)(fd) for O_PATH fds as well.

* Optimize seq_puts().

* Simplify __seq_puts().

* Add new anon_inode_getfile_fmode() api to allow specifying f_mode
  instead of open-coding it in multiple places.

* Annotate struct file_handle with __counted_by() and use struct_size().

* Warn in get_file() whether f_count resurrection from zero is
  attempted (epoll/drm discussion).

* Folio-sophize aio.

* Export the subvolume id in statx() for both btrfs and bcachefs.

* Relax linkat(AT_EMPTY_PATH) requirements.

* Add F_DUPFD_QUERY fcntl() allowing to compare two file descriptors for
  dup*() equality replacing kcmp().

Cleanups
========

* Compile out swapfile inode checks when swap isn't enabled.

* Use (0 << n) notation for FMODE_* bitshifts for clarity.

* Remove redundant variable assignment in fs/direct-io

* Cleanup uses of strncpy in orangefs.

* Speed up and cleanup writeback.

* Move fsparam_string_empty() helper into header since it's currently
  open-coded in multiple places.

* Add kernel-doc comments to proc_create_net_data_write().

* Don't needlessly read dentry->d_flags twice.

Fixes
=====

* Fix out-of-range warning in nilfs2.

* Fix ecryptfs overflow due to wrong encryption packet size calculation.

* Fix overly long line in xfs file_operations.
  (follow-up to FMODE_* cleanup)

* Don't raise FOP_BUFFER_{R,W}ASYNC for directories in xfs.
  (follow-up to FMODE_* cleanup)

* Don't call xfs_file_open from xfs_dir_open (follow-up to FMODE_* cleanup)

* Fix stable offset api to prevent endless loops.

* Fix afs file server rotations.

* Prevent xattr node from overflowing the eraseblock in jffs2.

* Move fdinfo PTRACE_MODE_READ procfs check into the inode .permission operation
  instead of open operation since this causes userspace regressions.

/* Testing */
clang: Debian clang version 16.0.6 (26)
gcc: (Debian 13.2.0-24)

All patches are based on v6.9-rc1 and have been sitting in linux-next.
No build failures or warnings were observed.

/* Conflicts */

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

[1] linux-next: manual merge of the vfs-brauner tree with the ext4 tree
    https://lore.kernel.org/linux-next/20240508103436.589bb440@canb.auug.org.au

[2] linux-next: manual merge of the block tree with the vfs-brauner, vfs trees
    https://lore.kernel.org/linux-next/20240416124426.624cfaf9@canb.auug.org.au

[3] linux-next: manual merge of the block tree with the vfs-brauner tree
    https://lore.kernel.org/linux-next/20240402112137.1ee85957@canb.auug.org.au

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

There'll be a merge conflict with mainline stemming from the addition of
FMODE_WRITE_RESTRICTED and the conversion of FMODE_* flags to (1 << n)
bit shitfs. The conflict can be resolved as follows:

diff --cc include/linux/fs.h
index 8dfd53b52744,5b351c1e6f58..000000000000
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@@ -110,23 -110,24 +110,26 @@@ typedef int (dio_iodone_t)(struct kioc
   */

  /* file is open for reading */
- #define FMODE_READ            ((__force fmode_t)0x1)
+ #define FMODE_READ            ((__force fmode_t)(1 << 0))
  /* file is open for writing */
- #define FMODE_WRITE           ((__force fmode_t)0x2)
+ #define FMODE_WRITE           ((__force fmode_t)(1 << 1))
  /* file is seekable */
- #define FMODE_LSEEK           ((__force fmode_t)0x4)
+ #define FMODE_LSEEK           ((__force fmode_t)(1 << 2))
  /* file can be accessed using pread */
- #define FMODE_PREAD           ((__force fmode_t)0x8)
+ #define FMODE_PREAD           ((__force fmode_t)(1 << 3))
  /* file can be accessed using pwrite */
- #define FMODE_PWRITE          ((__force fmode_t)0x10)
+ #define FMODE_PWRITE          ((__force fmode_t)(1 << 4))
  /* File is opened for execution with sys_execve / sys_uselib */
- #define FMODE_EXEC            ((__force fmode_t)0x20)
+ #define FMODE_EXEC            ((__force fmode_t)(1 << 5))
 +/* File writes are restricted (block device specific) */
- #define FMODE_WRITE_RESTRICTED  ((__force fmode_t)0x40)
++#define FMODE_WRITE_RESTRICTED  ((__force fmode_t)(1 << 6))
+
 -/* FMODE_* bits 6 to 8 */
++/* FMODE_* bits 7 to 8 */
+
  /* 32bit hashes as llseek() offset (for directories) */
- #define FMODE_32BITHASH         ((__force fmode_t)0x200)
+ #define FMODE_32BITHASH         ((__force fmode_t)(1 << 9))
  /* 64bit hashes as llseek() offset (for directories) */
- #define FMODE_64BITHASH         ((__force fmode_t)0x400)
+ #define FMODE_64BITHASH         ((__force fmode_t)(1 << 10))

  /*
   * Don't update ctime and mtime.

The following changes since commit 4cece764965020c22cff7665b18a012006359095:

  Linux 6.9-rc1 (2024-03-24 14:10:05 -0700)

are available in the Git repository at:

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

for you to fetch changes up to da0e01cc7079124cb1e86a2c35dd90ba12897e1a:

  afs: Fix fileserver rotation getting stuck (2024-05-10 08:49:17 +0200)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.10.misc

----------------------------------------------------------------
Alexey Dobriyan (1):
      vfs, swap: compile out IS_SWAPFILE() on swapless configs

Arnd Bergmann (1):
      nilfs2: fix out-of-range warning

Brian Kubisiak (1):
      ecryptfs: Fix buffer size for tag 66 packet

Christian Brauner (7):
      Merge series 'Fixes and cleanups to fs-writeback' of https://lore.kernel.org/r/20240228091958.288260-1-shikemeng@huaweicloud.com
      Merge patch series 'fs: aio: more folio conversion' of https://lore.kernel.org/r/20240321131640.948634-1-wangkefeng.wang@huawei.com
      fs: claw back a few FMODE_* bits
      fs: use bit shifts for FMODE_* flags
      Merge patch series 'Fix shmem_rename2 directory offset calculation' of https://lore.kernel.org/r/20240415152057.4605-1-cel@kernel.org
      file: add fd_raw cleanup class
      selftests: add F_DUPDFD_QUERY selftests

Christoph Hellwig (3):
      xfs: fix overly long line in the file_operations
      xfs: drop fop_flags for directories
      xfs: don't call xfs_file_open from xfs_dir_open

Christophe JAILLET (2):
      seq_file: Optimize seq_puts()
      seq_file: Simplify __seq_puts()

Chuck Lever (3):
      libfs: Fix simple_offset_rename_exchange()
      libfs: Add simple_offset_rename() API
      shmem: Fix shmem_rename2()

Colin Ian King (1):
      fs/direct-io: remove redundant assignment to variable retval

David Howells (1):
      afs: Fix fileserver rotation getting stuck

Dawid Osuchowski (1):
      fs: Create anon_inode_getfile_fmode()

Gustavo A. R. Silva (1):
      fs: Annotate struct file_handle with __counted_by() and use struct_size()

Ilya Denisyev (1):
      jffs2: prevent xattr node from overflowing the eraseblock

Justin Stitt (1):
      orangefs: cleanup uses of strncpy

Kees Cook (1):
      fs: WARN when f_count resurrection is attempted

Kefeng Wang (3):
      fs: aio: use a folio in aio_setup_ring()
      fs: aio: use a folio in aio_free_ring()
      fs: aio: convert to ring_folios and internal_folios

Kemeng Shi (6):
      fs/writeback: avoid to writeback non-expired inode in kupdate writeback
      fs/writeback: bail out if there is no more inodes for IO and queued once
      fs/writeback: remove unused parameter wb of finish_writeback_work
      fs/writeback: only calculate dirtied_before when b_io is empty
      fs/writeback: correct comment of __wakeup_flusher_threads_bdi
      fs/writeback: remove unnecessary return in writeback_inodes_sb

Kent Overstreet (1):
      statx: stx_subvol

Linus Torvalds (2):
      vfs: relax linkat() AT_EMPTY_PATH - aka flink() - requirements
      fcntl: add F_DUPFD_QUERY fcntl()

Luis Henriques (SUSE) (1):
      fs_parser: move fsparam_string_empty() helper into header

Matthew Wilcox (Oracle) (1):
      fs: Add FOP_HUGE_PAGES

Tyler Hicks (Microsoft) (1):
      proc: Move fdinfo PTRACE_MODE_READ check into the inode .permission operation

Yang Li (1):
      fs: Add kernel-doc comments to proc_create_net_data_write()

linke li (1):
      fs/dcache: Re-use value stored to dentry->d_flags instead of re-reading

 block/bdev.c                                    |  2 +-
 block/fops.c                                    |  1 +
 drivers/dax/device.c                            |  2 +-
 fs/afs/rotate.c                                 |  8 ++-
 fs/aio.c                                        | 91 ++++++++++++------------
 fs/anon_inodes.c                                | 33 +++++++++
 fs/bcachefs/fs.c                                |  3 +
 fs/btrfs/file.c                                 |  4 +-
 fs/btrfs/inode.c                                |  3 +
 fs/dcache.c                                     |  2 +-
 fs/direct-io.c                                  |  1 -
 fs/ecryptfs/keystore.c                          |  4 +-
 fs/ext4/file.c                                  |  6 +-
 fs/ext4/super.c                                 |  4 --
 fs/f2fs/file.c                                  |  3 +-
 fs/fcntl.c                                      | 20 ++++++
 fs/fhandle.c                                    |  6 +-
 fs/fs-writeback.c                               | 57 ++++++++-------
 fs/hugetlbfs/inode.c                            |  5 +-
 fs/jffs2/xattr.c                                |  3 +
 fs/libfs.c                                      | 55 +++++++++++++--
 fs/namei.c                                      | 19 +++--
 fs/nilfs2/ioctl.c                               |  2 +-
 fs/orangefs/dcache.c                            |  4 +-
 fs/orangefs/namei.c                             | 26 +++----
 fs/orangefs/super.c                             | 17 ++---
 fs/overlayfs/params.c                           |  4 --
 fs/proc/fd.c                                    | 42 ++++++-----
 fs/proc/proc_net.c                              |  1 +
 fs/read_write.c                                 |  2 +-
 fs/seq_file.c                                   | 13 +---
 fs/stat.c                                       |  1 +
 fs/xfs/xfs_file.c                               | 10 +--
 include/linux/anon_inodes.h                     |  5 ++
 include/linux/file.h                            |  1 +
 include/linux/fs.h                              | 92 +++++++++++++++----------
 include/linux/fs_parser.h                       |  4 ++
 include/linux/hugetlb.h                         |  8 +--
 include/linux/namei.h                           |  1 +
 include/linux/seq_file.h                        | 13 +++-
 include/linux/shm.h                             |  5 --
 include/linux/stat.h                            |  1 +
 include/uapi/linux/fcntl.h                      | 14 ++--
 include/uapi/linux/stat.h                       |  4 +-
 io_uring/io_uring.c                             |  2 +-
 io_uring/rw.c                                   |  9 +--
 ipc/shm.c                                       | 10 +--
 mm/mmap.c                                       |  4 +-
 mm/shmem.c                                      |  3 +-
 tools/testing/selftests/core/close_range_test.c | 55 ++++++++++++++-
 50 files changed, 437 insertions(+), 248 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [GIT PULL] vfs misc
@ 2024-03-08 10:09 Christian Brauner
  2024-03-11 18:33 ` pr-tracker-bot
  0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2024-03-08 10:09 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */
This contains the usual miscellaneous features, cleanups, and fixes for vfs and
individual fses.

Features
========

* Support idmapped mounts for hugetlbfs.

* Add RWF_NOAPPEND flag for pwritev2(). This allows to fix a bug where
  the passed offset is ignored if the file is O_APPEND. The new flag
  allows a caller to enforce that the offset is honored to conform to
  posix even if the file was opened in append mode.

* Move i_mmap_rwsem in struct address_space to avoid false sharing
  between i_mmap and i_mmap_rwsem.

* Convert efs, qnx4, and coda to use the new mount api.

* Add a generic is_dot_dotdot() helper that's used by various
  filesystems and the VFS code instead of open-coding it mutliple times.

* Recently we've added stable offsets which allows stable ordering
  when iterating directories exported through NFS on e.g., tmpfs
  filesystems. Originally an xarray was used for the offset map but that
  caused slab fragmentation issues over time. Tis switches the offset
  map to the maple tree which has a dense mode that handles this
  scenario a lot better. Includes tests.

* Finally merge the case-insensitive improvement series Gabriel has been
  working on for a long time. This cleanly propagates case insensitive
  operations through ->s_d_op which in turn allows us to remove the
  quite ugly generic_set_encrypted_ci_d_ops() operations. It also
  improves performance by trying a case-sensitive comparison first and
  then fallback to case-insensitive lookup if that fails. This also
  fixes a bug where overlayfs would be able to be mounted over a case
  insensitive directory which would lead to all sort of odd behaviors.

Cleanups
========

* Make file_dentry() a simple accessor now that ->d_real() is
  simplified because of the backing file work we did the last two
  cycles.

* Use the dedicated file_mnt_idmap helper in ntfs3.

* Use smp_load_acquire/store_release() in the i_size_read/write helpers
  and thus remove the hack to handle i_size reads in the filemap code.

* The SLAB_MEM_SPREAD is a nop now. Remove it from various places in fs/

* It's no longer necessary to perform a second built-in initramfs unpack
  call because we retain the contents of the previous extraction. Remove it.

* Now that we have removed various allocators kfree_rcu() always works
  with kmem caches and kmalloc(). So simplify various places that only
  use an rcu callback in order to handle the kmem cache case.

* Convert the pipe code to use a lockdep comparison function instead of
  open-coding the nesting making lockdep validation easier.

* Move code into fs-writeback.c that was located in a header but can be
  made static as it's only used in that one file.

* Rewrite the alignment checking iterators for iovec and bvec to be
  easier to read, and also significantly more compact in terms of
  generated code. This saves 270 bytes of text on x86-64 (with clang-18)
  and 224 bytes on arm64 (with gcc-13). In profiles it also saves a bit
  of time for the same workload.

* Switch various places to use KMEM_CACHE instead of kmem_cache_create().

* Use inode_set_ctime_to_ts() in inode_set_ctime_current()

* Use kzalloc() in name_to_handle_at() to avoid kernel infoleak.

* Various smaller cleanups for eventfds.

Fixes
=====

* Fix various comments and typos, and unneeded initializations.

* Fix stack allocation hack for clang in the select code.

* Improve dump_mapping() debug code on a best-effort basis.

* Fix build errors in various selftests.

* Avoid wrap-around instrumentation in various places.

* Don't allow user namespaces without an an idmapping written to be used
  for idmapped mounts.

* Fix sysv sb_read() call.

* Fix fallback implementation of the get_name() export operation.

/* Testing */
clang: Debian clang version 16.0.6 (19)
gcc: (Debian 13.2.0-7) 13.2.0

All patches are based on v6.8-rc1 and have been sitting in linux-next.
No build failures or warnings were observed.

/* Conflicts */

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

[1] linux-next: manual merge of the scsi-mkp tree with the vfs-brauner tree
    https://lore.kernel.org/linux-next/20240227153716.43e5cbad@canb.auug.org.au

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

No known conflicts.

The following changes since commit 6613476e225e090cc9aad49be7fa504e290dd33d:

  Linux 6.8-rc1 (2024-01-21 14:11:32 -0800)

are available in the Git repository at:

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

for you to fetch changes up to 09406ad8e5105729291a7639160e0cd51c9e0c6c:

  Merge tag 'for-next-6.9' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krisman/unicode into vfs.misc (2024-03-07 11:55:41 +0100)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.9.misc

----------------------------------------------------------------
Alexander Mikhalitsyn (1):
      ntfs3: use file_mnt_idmap helper

Amir Goldstein (2):
      fs: make file_dentry() a simple accessor
      fs: remove the inode argument to ->d_real() method

Andreas Gruenbacher (1):
      fs: Wrong function name in comment

Arnd Bergmann (1):
      fs/select: rework stack allocation hack for clang

Baokun Li (3):
      fs: make the i_size_read/write helpers be smp_load_acquire/store_release()
      Revert "mm/filemap: avoid buffered read/write race to read inconsistent data"
      asm-generic: remove extra type checking in acquire/release for non-SMP case

Baolin Wang (1):
      fs: improve dump_mapping() robustness

Bill O'Donnell (2):
      efs: convert efs to use the new mount api
      qnx4: convert qnx4 to use the new mount api

Chen Hanxiao (1):
      __fs_parse: Correct a documentation comment

Chengming Zhou (10):
      vfs: remove SLAB_MEM_SPREAD flag usage
      sysv: remove SLAB_MEM_SPREAD flag usage
      romfs: remove SLAB_MEM_SPREAD flag usage
      reiserfs: remove SLAB_MEM_SPREAD flag usage
      qnx6: remove SLAB_MEM_SPREAD flag usage
      proc: remove SLAB_MEM_SPREAD flag usage
      openpromfs: remove SLAB_MEM_SPREAD flag usage
      minix: remove SLAB_MEM_SPREAD flag usage
      jfs: remove SLAB_MEM_SPREAD flag usage
      efs: remove SLAB_MEM_SPREAD flag usage

Christian Brauner (3):
      Merge tag 'exportfs-6.9' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/cel/linux
      Merge series 'Use Maple Trees for simple_offset utilities' of https://lore.kernel.org/r/170820083431.6328.16233178852085891453.stgit@91.116.238.104.host.secureserver.net
      Merge tag 'for-next-6.9' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krisman/unicode into vfs.misc

Chuck Lever (6):
      fs: Create a generic is_dot_dotdot() utility
      libfs: Re-arrange locking in offset_iterate_dir()
      libfs: Define a minimum directory offset
      libfs: Add simple_offset_empty()
      maple_tree: Add mtree_alloc_cyclic()
      libfs: Convert simple directory offsets to use a Maple Tree

David Disseldorp (1):
      initramfs: remove duplicate built-in __initramfs_start unpacking

David Howells (1):
      Convert coda to use the new mount API

Dmitry Antipov (2):
      fs: prefer kfree_rcu() in fasync_remove_entry()
      eventpoll: prefer kfree_rcu() in __ep_remove()

Gabriel Krisman Bertazi (11):
      libfs: Attempt exact-match comparison first during casefolded lookup
      ovl: Always reject mounting over case-insensitive directories
      fscrypt: Factor out a helper to configure the lookup dentry
      fscrypt: Drop d_revalidate for valid dentries during lookup
      fscrypt: Drop d_revalidate once the key is added
      libfs: Merge encrypted_ci_dentry_ops and ci_dentry_ops
      libfs: Add helper to choose dentry operations at mount-time
      ext4: Configure dentry operations at dentry-creation time
      f2fs: Configure dentry operations at dentry-creation time
      ubifs: Configure dentry operations at dentry-creation time
      libfs: Drop generic_set_encrypted_ci_d_ops

Giuseppe Scrivano (1):
      hugetlbfs: support idmapped mounts

Hu Yadi (1):
      selftests/filesystems:fix build error in overlayfs

Hu.Yadi (1):
      selftests/move_mount_set_group:Make tests build with old libc

Huang Xiaojia (1):
      epoll: Remove ep_scan_ready_list() in comments

Jay (1):
      fs: fix a typo in attr.c

Jens Axboe (1):
      iov_iter: streamline iovec/bvec alignment iteration

JonasZhou (1):
      fs/address_space: move i_mmap_rwsem to mitigate a false sharing with i_mmap.

Kees Cook (2):
      iov_iter: Avoid wrap-around instrumentation in copy_compat_iovec_from_user()
      select: Avoid wrap-around instrumentation in do_sys_poll()

Kemeng Shi (1):
      writeback: move wb_wakeup_delayed defination to fs-writeback.c

Kent Overstreet (1):
      fs/pipe: Convert to lockdep_cmp_fn

Kunwu Chan (3):
      buffer: Use KMEM_CACHE instead of kmem_cache_create()
      fs: Use KMEM_CACHE instead of kmem_cache_create
      mbcache: Simplify the allocation of slab caches

Li zeming (1):
      libfs: Remove unnecessary ‘0’ values from ret

Liam R. Howlett (1):
      test_maple_tree: testing the cyclic allocation

Nguyen Dinh Phi (1):
      fs: use inode_set_ctime_to_ts to set inode ctime to current time

Nikita Zhandarovich (1):
      do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak

Randy Dunlap (1):
      fs/hfsplus: use better @opf description

Rich Felker (1):
      vfs: add RWF_NOAPPEND flag for pwritev2

Taylor Jackson (1):
      fs/mnt_idmapping.c: Return -EINVAL when no map is written

Tetsuo Handa (1):
      sysv: don't call sb_bread() with pointers_lock held

Trond Myklebust (1):
      exportfs: fix the fallback implementation of the get_name export operation

Vincenzo Mezzela (1):
      docs: filesystems: fix typo in docs

Wen Yang (3):
      eventfd: add a BUILD_BUG_ON() to ensure consistency between EFD_SEMAPHORE and the uapi
      eventfd: move 'eventfd-count' printing out of spinlock
      eventfd: strictly check the count parameter of eventfd_write to avoid inputting illegal strings

 Documentation/filesystems/files.rst                |   2 +-
 Documentation/filesystems/locking.rst              |   2 +-
 Documentation/filesystems/vfs.rst                  |  16 +-
 fs/attr.c                                          |   2 +-
 fs/backing-file.c                                  |   4 +-
 fs/buffer.c                                        |  10 +-
 fs/coda/inode.c                                    | 143 ++++++++++-----
 fs/crypto/fname.c                                  |   8 +-
 fs/crypto/hooks.c                                  |  15 +-
 fs/dcache.c                                        |   2 +-
 fs/ecryptfs/crypto.c                               |  10 --
 fs/efs/super.c                                     | 118 ++++++++----
 fs/eventfd.c                                       |  16 +-
 fs/eventpoll.c                                     |  16 +-
 fs/exportfs/expfs.c                                |   2 +-
 fs/ext4/namei.c                                    |   1 -
 fs/ext4/super.c                                    |   1 +
 fs/f2fs/f2fs.h                                     |  11 --
 fs/f2fs/namei.c                                    |   1 -
 fs/f2fs/super.c                                    |   1 +
 fs/fcntl.c                                         |   8 +-
 fs/fhandle.c                                       |   2 +-
 fs/fs-writeback.c                                  |  25 +++
 fs/fs_parser.c                                     |   4 +-
 fs/hfsplus/wrapper.c                               |   2 +-
 fs/hugetlbfs/inode.c                               |  23 ++-
 fs/inode.c                                         |   7 +-
 fs/jfs/super.c                                     |   2 +-
 fs/libfs.c                                         | 200 +++++++++++----------
 fs/mbcache.c                                       |   4 +-
 fs/minix/inode.c                                   |   2 +-
 fs/mnt_idmapping.c                                 |   2 +-
 fs/namei.c                                         |   6 +-
 fs/ntfs3/namei.c                                   |   2 +-
 fs/openpromfs/inode.c                              |   2 +-
 fs/overlayfs/params.c                              |  14 +-
 fs/overlayfs/super.c                               |  52 +++---
 fs/pipe.c                                          |  81 ++++-----
 fs/proc/inode.c                                    |   2 +-
 fs/qnx4/inode.c                                    |  47 +++--
 fs/qnx6/inode.c                                    |   2 +-
 fs/reiserfs/super.c                                |   1 -
 fs/romfs/super.c                                   |   4 +-
 fs/select.c                                        |  15 +-
 fs/sysv/inode.c                                    |   2 +-
 fs/sysv/itree.c                                    |  10 +-
 fs/ubifs/dir.c                                     |   1 -
 fs/ubifs/super.c                                   |   1 +
 include/asm-generic/barrier.h                      |   2 -
 include/linux/backing-dev.h                        |   1 -
 include/linux/dcache.h                             |  18 +-
 include/linux/fs.h                                 |  61 ++++++-
 include/linux/fscrypt.h                            |  66 ++++++-
 include/linux/maple_tree.h                         |   7 +
 include/linux/poll.h                               |   4 -
 include/uapi/linux/fs.h                            |   5 +-
 init/initramfs.c                                   |   2 -
 lib/iov_iter.c                                     |  60 ++++---
 lib/maple_tree.c                                   |  93 ++++++++++
 lib/test_maple_tree.c                              |  44 +++++
 mm/backing-dev.c                                   |  25 ---
 mm/filemap.c                                       |   9 -
 mm/shmem.c                                         |   4 +-
 .../selftests/filesystems/overlayfs/dev_in_maps.c  |  10 +-
 .../move_mount_set_group_test.c                    |   4 +-
 65 files changed, 816 insertions(+), 503 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [GIT PULL] vfs: misc
@ 2023-06-23 11:01 Christian Brauner
  2023-06-26 17:34 ` pr-tracker-bot
  0 siblings, 1 reply; 18+ messages in thread
From: Christian Brauner @ 2023-06-23 11:01 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */
This contains miscellaneous features, cleanups, and fixes for vfs and
individual fs.

Features
========
* Use mode 0600 for file created by cachefilesd so it can be run by
  unprivileged users. This aligns them with directories which are
  already created with mode 0700 by cachefilesd.
* Reorder a few members in struct file to prevent some false sharing
  scenarios.
* Indicate that an eventfd is used a semaphore in the eventfd's fdinfo
  procfs file.
* Add a missing uapi header for eventfd exposing relevant uapi defines.
* Let the VFS protect transitions of a superblock from read-only to
  read-write in addition to the protection it already provides for
  transitions from read-write to read-only. Protecting read-only to
  read-write transitions allows filesystems such as ext4 to perform
  internal writes, keeping writers away until the transition is
  completed.

Cleanups
========
* Arnd removed the architecture specific arch_report_meminfo()
  prototypes and added a generic one into procfs.h.
  Note, we got a report about a warning in amdpgpu codepaths that
  suggested this was bisectable to this change but we concluded it was a
  false positive.
* Remove unused parameters from split_fs_names().
* Rename put_and_unmap_page() to unmap_and_put_page() to let the name
  reflect the order of the cleanup operation that has to unmap before
  the actual put.
* Unexport buffer_check_dirty_writeback() as it is not used outside of
  block device aops.
* Stop allocating aio rings from highmem.
* Protecting read-{only,write} transitions in the VFS used open-coded
  barriers in various places. Replace them with proper little helpers
  and document both the helpers and all barrier interactions involved
  when transitioning between read-{only,write} states.
* Use flexible array members in old readdir codepaths.

Fixes
=====
* Use the correct type __poll_t for epoll and eventfd.
* Replace all deprecated strlcpy() invocations, whose return value isn't
  checked with an equivalent strscpy() call.
* Fix some kernel-doc warnings in fs/open.c
* Reduce the stack usage in jffs2's xattr codepaths finally getting
  rid of this:
  fs/jffs2/xattr.c:887:1: error: the frame size of 1088 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]
  royally annoying compilation warning.
* Use __FMODE_NONOTIFY instead of FMODE_NONOTIFY where an int and not
  fmode_t is required to avoid fmode_t to integer degradation warnings.
* Create coredumps with O_WRONLY instead of O_RDWR. There's a long
  explanation in that commit how O_RDWR is actually a bug which we found
  out with the help of Linus and git archeology.
* Fix "no previous prototype" warnings in the pipe codepaths.
* Add overflow calculations for remap_verify_area() as a signed addition
  overflow could be triggered in xfstests.
* Fix a null pointer dereference in sysv.
* Use an unsigned variable for length calculations in jfs avoiding
  compilation warnings with gcc 13.
* Fix a dangling pipe pointer in the watch queue codepath.
* The legacy mount option parser provided as a fallback by the VFS for
  filesystems not yet converted to the new mount api did prefix the
  generated mount option string with a leading ',' causing issues for
  some filesystems.
* Fix a repeated word in a comment in fs.h.
* autofs: Update the ctime when mtime is updated as mandated by POSIX.

/* Testing */
clang: Ubuntu clang version 15.0.7
gcc: (Ubuntu 12.2.0-3ubuntu1) 12.2.0

All patches are based on v6.4-rc2 and have been sitting in linux-next.
No build failures or warnings were observed. All old and new tests in
fstests, selftests, and LTP pass without regressions.

/* Conflicts */
There are two merge conflicts:

(1) This will cause a minor merge conflict with my v6.5/vfs.file pull
    request which renames an internal helper that's used in cachefiles.
    I would suggest to merge v6.5/vfs.misc first.
(2) linux-next: manual merge of the tip tree with the vfs-brauner tree
    https://lore.kernel.org/all/20230622131108.19059f3c@canb.auug.org.au

At the time of creating this PR no merge conflicts showed up doing a
test-merge with current mainline.

The following changes since commit f1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6:

  Linux 6.4-rc2 (2023-05-14 12:51:40 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/v6.5/vfs.misc

for you to fetch changes up to 2507135e4ff231a368eae38000a501da0b96c662:

  readdir: Replace one-element arrays with flexible-array members (2023-06-21 09:06:59 +0200)

Please consider pulling these changes from the signed v6.5/vfs.misc tag.

Thanks!
Christian

----------------------------------------------------------------
v6.5/vfs.misc

----------------------------------------------------------------
Anuradha Weeraman (1):
      fs/open.c: Fix W=1 kernel doc warnings

Arnd Bergmann (3):
      fs: d_path: include internal.h
      fs: pipe: reveal missing function protoypes
      procfs: consolidate arch_report_meminfo declaration

Azeem Shaikh (1):
      vfs: Replace all non-returning strlcpy with strscpy

Christoph Hellwig (1):
      fs: unexport buffer_check_dirty_writeback

David Howells (1):
      cachefiles: Allow the cache to be non-root

David Sterba (1):
      fs: use UB-safe check for signed addition overflow in remap_verify_area

Fabian Frederick (1):
      jffs2: reduce stack usage in jffs2_build_xattr_subsystem()

Fabio M. De Francesco (2):
      highmem: Rename put_and_unmap_page() to unmap_and_put_page()
      fs/aio: Stop allocating aio rings from HIGHMEM

Gustavo A. R. Silva (1):
      readdir: Replace one-element arrays with flexible-array members

Jan Kara (2):
      fs: Protect reconfiguration of sb read-write from racing writes
      fs: Provide helpers for manipulating sb->s_readonly_remount

Jeff Layton (1):
      autofs: set ctime as well when mtime changes on a dir

Kees Cook (1):
      jfs: Use unsigned variable for length calculations

Mao Zhu (1):
      fs: Fix comment typo

Min-Hua Chen (2):
      fs: use correct __poll_t type
      fs: fix incorrect fmode_t casts

Prince Kumar Maurya (1):
      fs/sysv: Null check to prevent null-ptr-deref bug

Siddh Raman Pant (1):
      watch_queue: prevent dangling pipe pointer

Thomas Weißschuh (1):
      fs: avoid empty option when generating legacy mount string

Vladimir Sementsov-Ogievskiy (1):
      coredump: require O_WRONLY instead of O_RDWR

Wen Yang (2):
      eventfd: show the EFD_SEMAPHORE flag in fdinfo
      eventfd: add a uapi header for eventfd userspace APIs

Yihuan Pan (1):
      init: remove unused names parameter in split_fs_names()

chenzhiyin (1):
      fs.h: Optimize file struct to prevent false sharing

 arch/parisc/include/asm/pgtable.h    |  3 ---
 arch/powerpc/include/asm/pgtable.h   |  3 ---
 arch/s390/include/asm/pgtable.h      |  3 ---
 arch/s390/mm/pageattr.c              |  1 +
 arch/x86/include/asm/pgtable.h       |  1 +
 arch/x86/include/asm/pgtable_types.h |  3 ---
 arch/x86/mm/pat/set_memory.c         |  1 +
 fs/aio.c                             | 26 ++++++++---------------
 fs/autofs/root.c                     |  6 +++---
 fs/buffer.c                          |  1 -
 fs/cachefiles/namei.c                |  3 ++-
 fs/char_dev.c                        |  2 +-
 fs/coredump.c                        |  2 +-
 fs/d_path.c                          |  1 +
 fs/eventfd.c                         | 12 ++++++-----
 fs/eventpoll.c                       |  2 +-
 fs/fs_context.c                      |  3 ++-
 fs/internal.h                        | 41 ++++++++++++++++++++++++++++++++++++
 fs/jffs2/build.c                     |  5 ++++-
 fs/jffs2/xattr.c                     | 13 ++++++++----
 fs/jffs2/xattr.h                     |  4 ++--
 fs/jfs/namei.c                       |  6 +++---
 fs/namespace.c                       | 25 ++++++++++++++--------
 fs/open.c                            | 14 +++---------
 fs/overlayfs/file.c                  |  2 +-
 fs/readdir.c                         |  8 +++----
 fs/remap_range.c                     |  5 ++++-
 fs/super.c                           | 22 +++++++++++--------
 fs/sysv/dir.c                        | 22 +++++++++----------
 fs/sysv/itree.c                      |  4 ++++
 fs/sysv/namei.c                      |  8 +++----
 include/linux/eventfd.h              |  8 ++-----
 include/linux/fs.h                   | 20 ++++++++++++------
 include/linux/highmem.h              |  2 +-
 include/linux/pipe_fs_i.h            |  4 ----
 include/linux/proc_fs.h              |  2 ++
 include/linux/watch_queue.h          |  3 +--
 include/uapi/linux/eventfd.h         | 11 ++++++++++
 init/do_mounts.c                     |  6 +++---
 kernel/watch_queue.c                 | 12 +++++------
 40 files changed, 188 insertions(+), 132 deletions(-)
 create mode 100644 include/uapi/linux/eventfd.h

^ permalink raw reply	[flat|nested] 18+ messages in thread
* [git pull] vfs misc
@ 2020-06-10 20:30 Al Viro
  2020-06-11  1:50 ` pr-tracker-bot
  0 siblings, 1 reply; 18+ messages in thread
From: Al Viro @ 2020-06-10 20:30 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

	A couple of trivial patches that fell through the cracks last cycle

The following changes since commit 8f3d9f354286745c751374f5f1fcafee6b3f3136:

  Linux 5.7-rc1 (2020-04-12 12:35:55 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.misc

for you to fetch changes up to cc23402c1c2de8b1815212f3924cdbc3cda02b94:

  fs: fix indentation in deactivate_super() (2020-05-29 10:35:25 -0400)

----------------------------------------------------------------
Nikolay Borisov (1):
      vfs: Remove duplicated d_mountpoint check in __is_local_mountpoint

Yufen Yu (1):
      fs: fix indentation in deactivate_super()

 fs/namespace.c | 5 +----
 fs/super.c     | 2 +-
 2 files changed, 2 insertions(+), 5 deletions(-)

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

end of thread, other threads:[~2025-03-24 21:00 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-22 10:12 [GIT PULL] vfs misc Christian Brauner
2025-03-24 16:20 ` Linus Torvalds
2025-03-24 17:09   ` Mateusz Guzik
2025-03-24 21:00 ` pr-tracker-bot
  -- strict thread matches above, loose matches on Subject: below --
2025-01-18 12:58 Christian Brauner
2025-01-20 18:59 ` pr-tracker-bot
2024-11-15 13:56 Christian Brauner
2024-11-18 19:49 ` pr-tracker-bot
2024-09-13 14:41 Christian Brauner
2024-09-16  7:34 ` pr-tracker-bot
2024-05-10 11:46 Christian Brauner
2024-05-13 19:38 ` pr-tracker-bot
2024-03-08 10:09 Christian Brauner
2024-03-11 18:33 ` pr-tracker-bot
2023-06-23 11:01 [GIT PULL] vfs: misc Christian Brauner
2023-06-26 17:34 ` pr-tracker-bot
2020-06-10 20:30 [git pull] vfs misc Al Viro
2020-06-11  1:50 ` 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;
as well as URLs for NNTP newsgroup(s).