HAMMER 40G/Many: UNDO cleanup & stabilization.
authorMatthew Dillon <dillon@dragonflybsd.org>
Sun, 4 May 2008 19:57:42 +0000 (19:57 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sun, 4 May 2008 19:57:42 +0000 (19:57 +0000)
commitc4bae5fdbbf32bf3783ee195e372bf0a15ed628c
tree6a446e05b5264f8a27c3f133d85b5271c40699a9
parent0006adae7fd20cb2dd99f0f580cd81d285d56352
HAMMER 40G/Many: UNDO cleanup & stabilization.

* Fix a race in the undo record allocator that could result in a
  corrupted UNDO FIFO.

* Fix improperly placed calls to hammer_test_inode().

* Properly account for nlinks when a deleted ADD record is to be
  converted to a DEL record by the flush.  In this case the frontend's
  notion of nlinks accounts for the deletion but the backend must sync
  the record anyway, so the backend needs to bump the link count by one.
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_undo.c