git: hammer2 - xop stabilization - part 2/many

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Jun 29 23:46:53 PDT 2015


commit e2163f5b586ddc73c26edb8ff227f51c8059fb75
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Mon Jun 29 23:37:20 2015 -0700

    hammer2 - xop stabilization - part 2/many
    
    * The xop mechanics do a quorum calculation, and will also do quorum
      calculations for the inode cluster (not yet in).  This calculation is
      primarily based on the bref.modify_tid.
    
      Each backend XOP now needs its own modify_tid to properly distinguish
      between and eventually serialize dependent backend ops.
    
    * Implement discrete modify_tid (mtid) reservations in
      hammer2_xop_alloc().  Remove the old modify_tid reservation code that only
      incremented it on a per-flush basis.
    
    * The flush code will acquire a unique modify_tid which is greater than all
      prior modify_tids in stage 2 (after it clears PREFLUSH).
    
    * The hammer2_xop_alloc() code is too messy returning the union structure,
      return a void * instead so the caller can just assign it to the correct
      sub-union structure.

Summary of changes:
 sys/vfs/hammer2/TODO               |  3 ++
 sys/vfs/hammer2/hammer2.h          | 38 ++++++++++--------
 sys/vfs/hammer2/hammer2_bulkscan.c |  4 +-
 sys/vfs/hammer2/hammer2_chain.c    | 55 +++++++++++++------------
 sys/vfs/hammer2/hammer2_flush.c    | 43 +++++++++++++++-----
 sys/vfs/hammer2/hammer2_freemap.c  | 32 +++++++++------
 sys/vfs/hammer2/hammer2_inode.c    | 43 ++++++++++----------
 sys/vfs/hammer2/hammer2_ioctl.c    | 11 +++--
 sys/vfs/hammer2/hammer2_strategy.c | 82 ++++++++++++++++++++------------------
 sys/vfs/hammer2/hammer2_thread.c   | 44 ++++++++++----------
 sys/vfs/hammer2/hammer2_vfsops.c   | 15 ++++---
 sys/vfs/hammer2/hammer2_vnops.c    | 18 ++++-----
 sys/vfs/hammer2/hammer2_xops.c     | 20 +++++-----
 13 files changed, 238 insertions(+), 170 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list