git: HAMMER VFS - REDO implementation base code part 1/many

Matthew Dillon dillon at
Mon Jan 11 20:58:43 PST 2010

commit 9192654c99abc28aca5b0eda1ad94ddb65ef735d
Author: Matthew Dillon <dillon at>
Date:   Sat Jan 9 20:03:06 2010 -0800

    HAMMER VFS - REDO implementation base code part 1/many
    * Implement basic REDO record writing and fsync heuristic in order to
      test operation and performance.  Note that the recovery code is not
      implemented as of this commit and additional REDO records will probably
      have to be written to manage the span.
      There was no easy way to place all REDOs in a single UNDO/REDO FIFO span
      because the span is not known until the inode's meta-data is actually
      flushed.  We can control the flush to ensure that all required REDOs
      are present in the UNDO/REDO FIFO.  So what we will likely do is track
      the span with additional REDO records.
    * Redo vfs.hammmer.fsync_mode:
    	0	REDO disabled, synchronous fsync semantics	(default)
    	1	REDO disabled, asynchronous fsync semantics
    	2	REDO enabled, synchronous  (uses disk sync command)
    	3	REDO enabled, asynchronous (no disk sync command)
    	4	fsync is ignored
    * Refactor hammer_flusher_flush_undos()
    * Default operation is to disable the new features as they are not
      finished yet.

Summary of changes:
 sys/vfs/hammer/hammer.h         |   25 +++++++++--
 sys/vfs/hammer/hammer_flusher.c |   18 ++++---
 sys/vfs/hammer/hammer_inode.c   |   24 ++++++++--
 sys/vfs/hammer/hammer_vnops.c   |   91 +++++++++++++++++++++++++++++++-------
 4 files changed, 123 insertions(+), 35 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list