HAMMER 15/many - user utility infrastructure, refactor alists, misc
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 3 Jan 2008 06:48:49 +0000 (06:48 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 3 Jan 2008 06:48:49 +0000 (06:48 +0000)
commit61aeeb33bede74b22c89082d6bd79ac8c317c450
tree3e29722e66ebf9dd95f459a6e6b011f2ca018f8f
parent2264bcda4561e73e796623045376317514d3cafc
HAMMER 15/many - user utility infrastructure, refactor alists, misc

* Abstract out userland access to HAMMER's on-disk structures in
  preparation for more userland work.

* Clean up compiler warnings.

* Refactor the A-list recursion API.  Use another bit code (10) to indicate
  the all-allocated & initialized state, verses an all-allocated &
  uninitialized state.

  This allows an all-empty flag to propogate up the chain properly which
  in turn allows us to avoid flushing out dirty backing store for freed
  disk blocks and will eventually lead to freeing typed buffers back to
  the cluster's master a-list.

* Fix an edge case in the B-Tree code related to running out of space
  during an insertion search.  If the insertion search ran out of space
  at a cluster boundary the spike code asserted because the parent B-Tree
  node wasn't in the same cluster as the node it thought it had to spike.
  (The root B-Tree node of a cluster cannot be spiked).

* Use a second cache pointer in the in-memory structure for directory
  inodes.  The second cache will be used for inode lookups relative to
  the directory and will (eventually) greatly reduce the B-Tree search
  overhead required to stat directory elements.
24 files changed:
sbin/hammer/Makefile
sbin/hammer/buffer_alist.c
sbin/hammer/cache.c [new file with mode: 0644]
sbin/hammer/hammer.c
sbin/hammer/hammer.h [new file with mode: 0644]
sbin/hammer/hammer_util.h
sbin/hammer/ondisk.c
sbin/hammer/super_alist.c
sbin/newfs_hammer/Makefile
sbin/newfs_hammer/buffer_alist.c [deleted file]
sbin/newfs_hammer/newfs_hammer.c
sbin/newfs_hammer/newfs_hammer.h
sbin/newfs_hammer/ondisk.c [deleted file]
sbin/newfs_hammer/super_alist.c [deleted file]
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_alist.c
sys/vfs/hammer/hammer_alist.h
sys/vfs/hammer/hammer_btree.c
sys/vfs/hammer/hammer_cursor.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_vnops.c