HAMMER 35/many: Stabilization pass, cleanups
commit1ae2fd35b998bb4fae6b9caa9d232e57f3686715
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 24 Mar 2008 23:50:23 +0000 (24 23:50 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 24 Mar 2008 23:50:23 +0000 (24 23:50 +0000)
tree596105d9efa4841e74bfe5936c3f0de59145f779
parent82e765e520c79b164843c4238951e3898db7e8a2
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