HAMMER 35/many: Stabilization pass, cleanups
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 24 Mar 2008 23:50:23 +0000 (23:50 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 24 Mar 2008 23:50:23 +0000 (23:50 +0000)
commitb58c6388a61db3df6185f0527dfe6bff829997bd
treecc654c32955a70fb3f9d258612d98a1ff0194d70
parent5d642f28f79011b1fb0741698bf91a7cd60aad34
HAMMER 35/many: Stabilization pass, cleanups

* Fix a buffer load race which could result in an assertion or panic
  related to a referenced HAMMER buffer with a NULL bp.  The problem was
  that the loading flag must be used when releasing the buffer as well
  as when acquiring the buffer.  Change the loading flag to a loading
  count.

* Do not lose flush requests.  The flush request now stays flagged until
  the buffer is able to be flushed.

* Fix stale blockmap offsets cached in hammer_buffer.  Clear the cached
  offset when freeing a big block from the blockmap.  NOTE: We do not yet
  try to index buffers based on the blockmap offset but we should.

* Remove the old write ordering code in preparation for redoing the algorithm.

* General code cleanups.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_freemap.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_reblock.c
sys/vfs/hammer/hammer_undo.c