hammer2 - serialized flush work part 2
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 31 Jan 2013 06:41:52 +0000 (22:41 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 31 Jan 2013 06:41:52 +0000 (22:41 -0800)
commite2e9e2dbb419600b6f99d26f4a4d773dcc04e2f5
tree509c050c186778e92d3ae560578a93d46f6bca98
parent476d2aadb736b6541fd2075a1de97f9069aa5080
hammer2 - serialized flush work part 2

* Adjust the hammer2_inode_lock*() API to separate the inode lock from
  the chain lock (it gets both).  The locked chain associated with the
  inode is now returned and can change during search iterations, eventually
  to be returned via hammer2_inode_unlock*().

* Fixes issues related to threads obtaining more than 1 shared lock on the
  same chain, which can deadlock deeper procedures which might need to
  temporarily upgrade the lock.

* Continue working through bugs.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_subr.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c