mbox series

[git,pull] rcu pathwalk fixes

Message ID ZdrpXmWQYzExV5m3@duke.home (mailing list archive)
State New, archived
Headers show
Series [git,pull] rcu pathwalk fixes | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git tags/pull-fixes.pathwalk-rcu-2

Message

Al Viro Feb. 25, 2024, 7:16 a.m. UTC
[as posted on Feb 4, with accumulated acked-by/reviewed-by added; the original
branch is also tagged (pull-fixes.pathwalk-rcu), the only difference is in the
added lines in commit messages and resulting update of commit dates]

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://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git tags/pull-fixes.pathwalk-rcu-2

for you to fetch changes up to 9fa8e282c2bfe93338e81a620a49f5903a745231:

  ext4_get_link(): fix breakage in RCU mode (2024-02-25 02:10:32 -0500)

----------------------------------------------------------------
We still have some races in filesystem methods when exposed to RCU
pathwalk.  This series is a result of code audit (the second round
of it) and it should deal with most of that stuff.  Exceptions: ntfs3
->d_hash()/->d_compare() and ceph_d_revalidate().  Up to maintainers (a
note for NTFS folks - when documentation says that a method may not block,
it *does* imply that blocking allocations are to be avoided.  Really).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

----------------------------------------------------------------
Al Viro (13):
      fs/super.c: don't drop ->s_user_ns until we free struct super_block itself
      rcu pathwalk: prevent bogus hard errors from may_lookup()
      affs: free affs_sb_info with kfree_rcu()
      exfat: move freeing sbi, upcase table and dropping nls into rcu-delayed helper
      hfsplus: switch to rcu-delayed unloading of nls and freeing ->s_fs_info
      afs: fix __afs_break_callback() / afs_drop_open_mmap() race
      nfs: make nfs_set_verifier() safe for use in RCU pathwalk
      nfs: fix UAF on pathwalk running into umount
      procfs: move dropping pde and pid from ->evict_inode() to ->free_inode()
      procfs: make freeing proc_fs_info rcu-delayed
      fuse: fix UAF in rcu pathwalks
      cifs_get_link(): bail out in unsafe case
      ext4_get_link(): fix breakage in RCU mode

 fs/affs/affs.h            |  1 +
 fs/affs/super.c           |  2 +-
 fs/afs/file.c             |  8 ++++++--
 fs/exfat/exfat_fs.h       |  1 +
 fs/exfat/nls.c            | 14 ++++----------
 fs/exfat/super.c          | 20 +++++++++++---------
 fs/ext4/symlink.c         |  8 +++++---
 fs/fuse/cuse.c            |  3 +--
 fs/fuse/fuse_i.h          |  1 +
 fs/fuse/inode.c           | 15 +++++++++++----
 fs/hfsplus/hfsplus_fs.h   |  1 +
 fs/hfsplus/super.c        | 12 +++++++++---
 fs/namei.c                |  6 +++++-
 fs/nfs/client.c           | 13 ++++++++++---
 fs/nfs/dir.c              |  4 ++--
 fs/proc/base.c            |  2 --
 fs/proc/inode.c           | 19 ++++++++-----------
 fs/proc/root.c            |  2 +-
 fs/smb/client/cifsfs.c    |  3 +++
 fs/super.c                | 13 ++++---------
 include/linux/nfs_fs_sb.h |  2 ++
 include/linux/proc_fs.h   |  1 +
 22 files changed, 88 insertions(+), 63 deletions(-)

Comments

pr-tracker-bot@kernel.org Feb. 25, 2024, 5:58 p.m. UTC | #1
The pull request you sent on Sun, 25 Feb 2024 02:16:46 -0500:

> git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git tags/pull-fixes.pathwalk-rcu-2

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

Thank you!