git: kernel - cycle vnode in cache_unlink()

Matthew Dillon dillon at crater.dragonflybsd.org
Fri Feb 1 10:01:50 PST 2013


commit 245d8a0dfa548142367bafba756f1dda2b822750
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Feb 1 09:57:55 2013 -0800

    kernel - cycle vnode in cache_unlink()
    
    * cache_unlink() and cache_rename() are called by VFS's to update the
      namecache after a file deletion or rename.  cache_rename() also calls
      cache_unlink().
    
    * Add code to this function which cycles any vnode attached to the
      namecache entry for the case where its refs are 0.  This will
      trigger VOP_INACTIVE and allow the VFS to detect file deletions.
    
      Generally speaking this means that VFS's no longer have to detect
      deleted files in code paths outside of VOP_INACTIVE w/regards to
      forcing a reclaim on the vnode.
    
    * HAMMER2 now depends on this behavior.  The change in behavior allows
      HAMMER2 to do away with inode backpointers from chain structures,
      greatly simplifying the code and removing a chicken-egg dependency.
    
    * Other VFSs (HAMMER, TMPFS, UFS) may be adjusted in the future but for
      now their file deletion code outside of VOP_INACTIVE is being left
      intact.

Summary of changes:
 sys/kern/vfs_cache.c | 30 ++++++++++++++++++++++++++++--
 1 file changed, 28 insertions(+), 2 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/245d8a0dfa548142367bafba756f1dda2b822750


-- 
DragonFly BSD source repository



More information about the Commits mailing list