HAMMER VFS - hammer_inode / vp races
commite0092341a30906d2f43d89f76d181dd96ccb9802
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 15 Jan 2010 04:01:54 +0000 (14 20:01 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 15 Jan 2010 04:01:54 +0000 (14 20:01 -0800)
tree6e313f31af90e6ca0afb59a784aded7650c57e55
parentac88f01af9c9434aee04c0e3cba620a988df4cc4
HAMMER VFS - hammer_inode / vp races

* The hammer_inode must be locked when clearing the vp during a reclaim
  to interlock with a concurrent reclaim.

* hammer_get_vnode() must hold the vp while holding the hammer_inode locked
  to prevent destruction when racing against drops or reclaims.

* Remove the HAMMER_INODE_VHELD flag.  Backend truncations and the
  last inode release should acquire the vnode properly now in
  hammer_inode_unloadable_check().
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_inode.c