HAMMER 33/many: Expand transaction processing, fix bug in B-Tree
commit295a1ecdefdc524a4a334401b31b6d98437212fa
authorMatthew Dillon <dillon@dragonflybsd.org>
Wed, 19 Mar 2008 20:18:17 +0000 (19 20:18 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Wed, 19 Mar 2008 20:18:17 +0000 (19 20:18 +0000)
tree07894ac9cc4f5af4aa068ee187190554bff0b428
parentbe7aecae5d6623e786380fda5c4e8d48e6d9126a
HAMMER 33/many: Expand transaction processing, fix bug in B-Tree

* Expand transaction processing to cover more of the code space for
  upcoming undo code.

* Fix a bug in the btree_split_leaf(), the separator would sometimes not
  properly be to the left of the split point, resulting in a panic.
  Temporarily add many more assertions to btree_split_leaf().

* Improve the critical path for blockmap lookups, the (newly) passed trans
  already contains a referenced root volume so the blockmap code does not
  have to acquire one.

Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx> (B-Tree bug)
19 files changed:
sbin/hammer/hammer.c
sbin/newfs_hammer/newfs_hammer.c
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_blockmap.c
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_cursor.c
sys/vfs/hammer/hammer_cursor.h
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_freemap.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_ioctl.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_reblock.c
sys/vfs/hammer/hammer_transaction.c
sys/vfs/hammer/hammer_undo.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c