HAMMER 18/many: Stabilization pass
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 11 Jan 2008 01:41:34 +0000 (01:41 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 11 Jan 2008 01:41:34 +0000 (01:41 +0000)
commitf3b0f38263552a134796e57046c5d0aed1d505c2
tree1cc59155e191d9770e474e47a12ca7323a107b76
parentae7cb1b5c435678f07bcf798237b7b267f2d90da
HAMMER 18/many: Stabilization pass

* Properly flag the inode when dirty buffer cache buffers are present so
  fsync syncs them.  Fixes a umount panic.

* Fix A-list bugs introduced when I added the '10' bit code to record
  an all-allocated/initialized state vs '00' (all-allocated uninitialized).

* Fix an A-list bug in *alloc_rev.  A comparison was off and could result
  in a near full A-list from incorrectly believing it was completely full.

* When generating a spike also allocate a spike record for the recovery code
  to find.

* Generate the initial free blocks for a hammer buffer via its cluster A-list
  instead of directly so the cluster A-list's meta-data is properly
  synchronized.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_alist.c
sys/vfs/hammer/hammer_disk.h
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_spike.c
sys/vfs/hammer/hammer_vnops.c