git: hammer2 - Stabilization pass, more flush refactoring

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Oct 31 23:08:58 PDT 2013


commit a4dc31e022f821212e65d95b025bca4d77c73ca6
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Oct 31 22:57:55 2013 -0700

    hammer2 - Stabilization pass, more flush refactoring
    
    * Add voldata.inode_tid, separate inode TID allocations from
      transaction TID allocations in voldata.
    
    * Rewrite the transaction management functions.
    
    * Rewrite hammer2's filesystem sync code to reduce stalls.
    
    * Keep track of a generation number on the hammer2_chain_core structure
      so the flush code can re-scan when it modifies elements within the
      flush transaction.
    
    * Cleanup the duplication and delete-duplication code and hardlink handling.
      The delete-duplication code now properly tags delete_tid when a flush is
      delete-duplicating a chain which is deleted in the live view but is still
      valid in the flush view.
    
    * Correct numerous bugs in tracking the modified/deleted state of
      a chain.
    
    * Correct numerous flush bugs.
    
    * Separate the mirror TID for the freemap chain from the volume chain.
      This will allow freemap updates to be delayed.
    
    * Implement a more stringent algorithm to determine when CHAIN_MOVED
      can be cleared in chain->flags.
    
    * Do a better job limiting the flush scan when concurrent modifying
      operations are occuring in large volumes.

Summary of changes:
 sbin/newfs_hammer2/newfs_hammer2.c |   3 +-
 sys/vfs/hammer2/hammer2.h          |  16 +-
 sys/vfs/hammer2/hammer2_chain.c    | 447 +++++++++++++++++---------------
 sys/vfs/hammer2/hammer2_disk.h     |   6 +-
 sys/vfs/hammer2/hammer2_flush.c    | 504 +++++++++++++++++++------------------
 sys/vfs/hammer2/hammer2_freemap.c  |  27 +-
 sys/vfs/hammer2/hammer2_inode.c    |  17 +-
 sys/vfs/hammer2/hammer2_ioctl.c    |   4 +-
 sys/vfs/hammer2/hammer2_vfsops.c   |  57 ++---
 sys/vfs/hammer2/hammer2_vnops.c    |  27 +-
 10 files changed, 600 insertions(+), 508 deletions(-)

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


-- 
DragonFly BSD source repository


More information about the Commits mailing list