git: hammer2 - stabilization

Matthew Dillon dillon at crater.dragonflybsd.org
Mon May 25 09:25:23 PDT 2015


commit eedd52a3c81fcf228313386db2a7626de84983f5
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon May 25 09:22:13 2015 -0700

    hammer2 - stabilization
    
    * Fix more deadlocks.  The solution here is not ideal, I'm doing too much
      unlocking and relocking of clusters and probably breaking certain atomicy
      requirements.
    
    * Implement a delayed flush mechanism when making permanent chain deletions
      instead of calling hammer2_flush().  This should allow the flush code to
      better optimize-out unnecessary write I/Os.
    
    * Add a spinlock for the ip->cluster (not completed yet).
    
    * I had broken system-initated filesystem syncing by calling vclrisdirty()
      on the syncer vnode.  Fix it.

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |  6 +++-
 sys/vfs/hammer2/hammer2_chain.c   | 30 ++++------------
 sys/vfs/hammer2/hammer2_cluster.c | 30 +++++++++-------
 sys/vfs/hammer2/hammer2_flush.c   | 74 +++++++++++++++++++++++++++++++++++++--
 sys/vfs/hammer2/hammer2_inode.c   | 31 ++++++++++++----
 sys/vfs/hammer2/hammer2_syncthr.c |  7 +++-
 sys/vfs/hammer2/hammer2_vfsops.c  |  5 +--
 7 files changed, 134 insertions(+), 49 deletions(-)

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


-- 
DragonFly BSD source repository


More information about the Commits mailing list