hammer2 - locking revamp
commit94491fa098a9b62dd517fe5e5f0c8bf3315b9d5a
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 23 Mar 2015 03:26:08 +0000 (22 20:26 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 23 Mar 2015 03:26:08 +0000 (22 20:26 -0700)
tree3f21767d77045f9eda178dbd0bcb6e41ac4cd099
parentcabfc9f6989fa1e4dbccc61162309bd2ec6891c9
hammer2 - locking revamp

* Temporarily remove hammer2_ccms.c from the build and remove the ccms
  container.  The CCMS container will be used again when we get cache
  coherent in, but for now it isn't needed.

* Replace the ccms state lock with a mtx lock and move
  into hammer2_chain_core.

  Note that the mtx lock being used here has abort and async locking
  support and these features will be required by HAMMER2.

* Replace the ccms spin lock with a normal spin lock and move
  into hammer2_chain_core.

* Refactor the OS locking interface to use hammer2_* prefixes for easier
  porting.

* Use a shared spin lock for the ONFLUSH bit update instead of an exclusive
  spin lock.
sys/vfs/hammer2/Makefile
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_ccms.c
sys/vfs/hammer2/hammer2_ccms.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_io.c
sys/vfs/hammer2/hammer2_subr.c
sys/vfs/hammer2/hammer2_vfsops.c
sys/vfs/hammer2/hammer2_vnops.c