git: HAMMER VFS - Fix degenerate stall condition in flusher during unmount

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Apr 11 10:20:29 PDT 2011


commit e86903d84f840af38d1b452a6a6c624702373751
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Apr 11 10:07:37 2011 -0700

    HAMMER VFS - Fix degenerate stall condition in flusher during unmount
    
    * Fix a case where the flusher can stall during an unmount.
    
    * Rework the flusher sequence numbers to always allocate a sequence number
      when a flush is requested, remove the flusher.act field, and rejigger the
      code a bit.
    
    * This also cleans up an edge case when a full sync is inserted (when taking
      snapshots, filesystem sync, etc), by inserting several sequence numbers to
      completely flush the UNDO/REDO FIFO before moving on to the next active
      flush group.
    
    Reported-by: Sepherosa Ziehau <sepherosa at gmail.com>, Francois Tigeot <ftigeot at wolfpond.org>, numerous others.

Summary of changes:
 sys/vfs/hammer/hammer.h           |    3 +-
 sys/vfs/hammer/hammer_flusher.c   |  115 +++++++++++++++++++++----------------
 sys/vfs/hammer/hammer_mirror.c    |    2 +-
 sys/vfs/hammer/hammer_pfs.c       |    2 +-
 sys/vfs/hammer/hammer_prune.c     |    2 +-
 sys/vfs/hammer/hammer_rebalance.c |    2 +-
 sys/vfs/hammer/hammer_reblock.c   |    2 +-
 7 files changed, 71 insertions(+), 57 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e86903d84f840af38d1b452a6a6c624702373751


-- 
DragonFly BSD source repository





More information about the Commits mailing list