Merge tag 'pull-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 Jan 2024 04:11:35 +0000 (20:11 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 12 Jan 2024 04:11:35 +0000 (20:11 -0800)
commit499aa1ca4eb6602df38afaecb88fc14edf50cdbb
tree32ab97c0ab43eea0e313cd1f6ec0b904a689b17b
parentbf4e7080aeed29354cb156a8eb5d221ab2b6a8cc
parent1b6ae9f6e6c3e3c35aad0f11b116a81780b8aa03
Merge tag 'pull-dcache' of git://git./linux/kernel/git/viro/vfs

Pull dcache updates from Al Viro:
 "Change of locking rules for __dentry_kill(), regularized refcounting
  rules in that area, assorted cleanups and removal of weird corner
  cases (e.g. now ->d_iput() on child is always called before the parent
  might hit __dentry_kill(), etc)"

* tag 'pull-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (40 commits)
  dcache: remove unnecessary NULL check in dget_dlock()
  kill DCACHE_MAY_FREE
  __d_unalias() doesn't use inode argument
  d_alloc_parallel(): in-lookup hash insertion doesn't need an RCU variant
  get rid of DCACHE_GENOCIDE
  d_genocide(): move the extern into fs/internal.h
  simple_fill_super(): don't bother with d_genocide() on failure
  nsfs: use d_make_root()
  d_alloc_pseudo(): move setting ->d_op there from the (sole) caller
  kill d_instantate_anon(), fold __d_instantiate_anon() into remaining caller
  retain_dentry(): introduce a trimmed-down lockless variant
  __dentry_kill(): new locking scheme
  d_prune_aliases(): use a shrink list
  switch select_collect{,2}() to use of to_shrink_list()
  to_shrink_list(): call only if refcount is 0
  fold dentry_kill() into dput()
  don't try to cut corners in shrink_lock_dentry()
  fold the call of retain_dentry() into fast_dput()
  Call retain_dentry() with refcount 0
  dentry_kill(): don't bother with retain_dentry() on slow path
  ...
Documentation/filesystems/porting.rst
fs/afs/dynroot.c
fs/dcache.c
fs/file_table.c
fs/internal.h
fs/libfs.c
fs/nfsd/nfsctl.c
fs/overlayfs/export.c
fs/tracefs/inode.c