• Linus Torvalds's avatar
    Merge tag 'pull-dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 499aa1ca
    Linus Torvalds authored
    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
      ...
    499aa1ca
export.c 22.6 KB