HAMMER VFS - REDO implementation base code part 3/many
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 12 Jan 2010 04:46:08 +0000 (20:46 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 12 Jan 2010 04:57:06 +0000 (20:57 -0800)
commit73896937a65b2ad6b84128ce92d0b0d748cb4a14
treeb353ec06b4e2946c3b17b82fdf912b94a8127549
parent47f363f1004a98606310718bed81606c44d57c71
HAMMER VFS - REDO implementation base code part 3/many

* Track the oldest potentially uncommitted UNDO/REDO FIFO offset
  on an inode-by-inode basis and use a red-black tree to find
  the aggregate oldest offset.

* If REDOs are present generate a REDO SYNC entry in the UNDO/REDO FIFO
  within the recovery span which indicates to the recovery code how
  far out of the span it must go to process REDOs.

* Fix a bug in hammer_generate_redo() where the REDO would not be
  generated if the data length was 0 (SYNC records use a data length
  of 0 as a degenerate case).

* Print the REDO SYNC entries on the console if bit 2 is set in
  vfs.hammer.debug_io (0x04).

* NOTE: The recovery code does not yet process REDOs.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_redo.c
sys/vfs/hammer/hammer_vfsops.c