HAMMER 38D/Many: Undo/Synchronization and crash recovery
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 26 Apr 2008 02:54:00 +0000 (02:54 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 26 Apr 2008 02:54:00 +0000 (02:54 +0000)
commitf90dde4c06ea86fca65841766b334ff0b4dc03b8
treed57ee01d257218455194c25063d2d0c1c079c605
parent10a5d1ba1fb5faaa67ccb08651ff39f1208a4a82
HAMMER 38D/Many: Undo/Synchronization and crash recovery

* The flusher now waits for I/O to complete at the appropriate points.

* Implement instant crash recovery.  The UNDO FIFO is scanned backwards
  and reapplied to the filesystem on mount.  There is still more work
  to do here, inode<->inode associations (e.g. directory entry vs file)
  are not yet bound together.

* Clean up I/O sequencing a lot and get rid of a ton of unnecessary flusher
  wakeups.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_flusher.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_recover.c
sys/vfs/hammer/hammer_undo.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c