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