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