HAMMER 16/many - Recovery infrastructure, misc bug fixes
authorMatthew Dillon <dillon@dragonflybsd.org>
Wed, 9 Jan 2008 00:46:22 +0000 (00:46 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Wed, 9 Jan 2008 00:46:22 +0000 (00:46 +0000)
commit4d75d8290a08a2a8661b2883f983e1bcd3d7470e
treefce3fd511738d2c049d75f5c10258adbcbe40b4b
parentfd6f045f866a91f36356298aac27a15aa8215783
HAMMER 16/many - Recovery infrastructure, misc bug fixes

* Add A-list recovery and iteration support.  This code fixes up an A-list
  which might have been partially modified or gotten out of sync.

* Add substantial cluster recovery infrastructure (not yet enabled).  The
  code still needs to go through a few test/debug cycles and does not
  yet handle cluster pushes.

* Fix a critical section and a bug in the A-list empty-check code (the
  latter not yet used by HAMMER but will be soon).  The wrong base free
  block count was being supplied.

* Add a synchronizing transaction id field to the cluster header.  This
  field will be used by the recovery code.

* For the moment add a bitmap of buffers allocated to record arrays.  The
  bitmap is in the cluster header.  This may or may not be temporary.  For
  now it will allow the recovery code to wipe the cluster's A-list's and
  then iterate records to regenerate them.
sbin/newfs_hammer/newfs_hammer.c
sys/vfs/hammer/Makefile
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_alist.c
sys/vfs/hammer/hammer_alist.h
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_object.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_recover.c [new file with mode: 0644]
sys/vfs/hammer/hammer_subs.c