hammer2 - stabilization
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 25 May 2015 16:22:13 +0000 (09:22 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 25 May 2015 16:22:13 +0000 (09:22 -0700)
commiteedd52a3c81fcf228313386db2a7626de84983f5
tree1404c34e3f5d45e02bf90839c8f35e404b02127b
parent82900520a1cb198b11b5ff74a35d1607de767841
hammer2 - stabilization

* Fix more deadlocks.  The solution here is not ideal, I'm doing too much
  unlocking and relocking of clusters and probably breaking certain atomicy
  requirements.

* Implement a delayed flush mechanism when making permanent chain deletions
  instead of calling hammer2_flush().  This should allow the flush code to
  better optimize-out unnecessary write I/Os.

* Add a spinlock for the ip->cluster (not completed yet).

* I had broken system-initated filesystem syncing by calling vclrisdirty()
  on the syncer vnode.  Fix it.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_chain.c
sys/vfs/hammer2/hammer2_cluster.c
sys/vfs/hammer2/hammer2_flush.c
sys/vfs/hammer2/hammer2_inode.c
sys/vfs/hammer2/hammer2_syncthr.c
sys/vfs/hammer2/hammer2_vfsops.c