HAMMER 34/many: Stabilization pass
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 22 Mar 2008 02:06:55 +0000 (02:06 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 22 Mar 2008 02:06:55 +0000 (02:06 +0000)
commita84a197d08b6a87160750dfaef79a0ca13fed0d3
tree03363870f9464a92c271ff92fcf8b0906eb272f7
parent89d9d449346713d9e7185f008abfdf26c55730bd
HAMMER 34/many: Stabilization pass

* Fix a node reference count leak in hammer_btree_lock_children().  This
  was resulting in a panic at umount time.

* Fix a misordered lock in hammer_cursor_up() which could result in
  an assertion in the B-Tree iteration code.  The cursor-up code was
  resolving the parent index prior to acquiring a shared lock on the
  parent node.  An insertion by another thread could do a split and
  change the parent index.  The shared lock must be acquired first.

* Add additional debugging output and add additional assertions.  HAMMER
  now has 205 assert lines in the code.

Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx> (umount panic)
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_cursor.c