git: hammer2 hammer2 - Implement variable-sized indirect blocks, clustered reads

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Mar 19 21:24:09 PDT 2012


commit 6ba3b984736974a60373ed1610426443c5be4266
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Mar 19 18:34:45 2012 -0700

    hammer2 - Implement variable-sized indirect blocks, clustered reads
    
    * Implement 4K indirect blocks as well as 64K indirect blocks
    
    * Do not flush the chains for VOP_FSYNC() calls issued from 'sync' or
      from the syncer, only flush the chains when called from fsync().
    
      This solves a fairly nasty repeated copy-on-write ops on the same block
      in the topology.
    
    * Issue appropriate cluster_read() calls instead of bread().
    
    * Implement forward-looking bmap across multiple blocks instead of just one.

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |   31 +++++--
 sys/vfs/hammer2/hammer2_chain.c   |  171 ++++++++++++++++++++++++++++--------
 sys/vfs/hammer2/hammer2_disk.h    |   16 ++--
 sys/vfs/hammer2/hammer2_freemap.c |   55 ++++++------
 sys/vfs/hammer2/hammer2_inode.c   |    6 +-
 sys/vfs/hammer2/hammer2_subr.c    |   25 ++++++
 sys/vfs/hammer2/hammer2_vnops.c   |  124 ++++++++++++++++++++------
 7 files changed, 314 insertions(+), 114 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/6ba3b984736974a60373ed1610426443c5be4266


-- 
DragonFly BSD source repository





More information about the Commits mailing list