git: hammer2 - More involved refactoring of chain_repparent, cleanup

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Mar 17 01:31:38 PDT 2018


commit 68b321c1c2fcb76069594715a2a617f08aeb59ec
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Fri Mar 16 11:01:11 2018 -0700

    hammer2 - More involved refactoring of chain_repparent, cleanup
    
    * Remove unused locking flags (remove the NOLOCK and NOUNLOCK
      features).
    
    * Add HAMMER2_RESOLVE_NONBLOCK to hammer2_chain_lock() for use
      only by hammer2_chain_getparent() and hammer2_chain_repparent().
    
    * Refactor hammer2_chain_getparent() and hammer2_chain_repparent().
      Add a hot-path that uses HAMMER2_RESOLVE_NONBLOCK.  If this fails
      we now do a much more involved tracking operation via 'reptrack'
      to deal with races against indirect block deletions.
    
    * Cleanup the copyright messages.
    
    * Fix an issue where a sync could be held-up indefinitely by
      ongoing overlapping modifying operations.
    
    * Install a proper initial inode count when creating a snapshot.
    
    * Fix a deadlock in checkdirempty().  A chain lock was winding
      up being ordered incorrectly.

Summary of changes:
 sys/vfs/hammer2/hammer2.h          |  33 ++--
 sys/vfs/hammer2/hammer2_admin.c    |   2 +-
 sys/vfs/hammer2/hammer2_bulkfree.c |   2 +-
 sys/vfs/hammer2/hammer2_ccms.c     |   2 +-
 sys/vfs/hammer2/hammer2_ccms.h     |   2 +-
 sys/vfs/hammer2/hammer2_chain.c    | 305 ++++++++++++++++++++++++++-----------
 sys/vfs/hammer2/hammer2_cluster.c  |   2 +-
 sys/vfs/hammer2/hammer2_disk.h     |   2 +-
 sys/vfs/hammer2/hammer2_flush.c    |  41 +++--
 sys/vfs/hammer2/hammer2_freemap.c  |   2 +-
 sys/vfs/hammer2/hammer2_inode.c    |   2 +-
 sys/vfs/hammer2/hammer2_io.c       |   2 +-
 sys/vfs/hammer2/hammer2_iocom.c    |   2 +-
 sys/vfs/hammer2/hammer2_ioctl.c    |   4 +-
 sys/vfs/hammer2/hammer2_ioctl.h    |   2 +-
 sys/vfs/hammer2/hammer2_mount.h    |   2 +-
 sys/vfs/hammer2/hammer2_msgops.c   |   2 +-
 sys/vfs/hammer2/hammer2_strategy.c |   1 +
 sys/vfs/hammer2/hammer2_subr.c     |   2 +-
 sys/vfs/hammer2/hammer2_synchro.c  |   2 +-
 sys/vfs/hammer2/hammer2_vnops.c    |   5 +-
 sys/vfs/hammer2/hammer2_xops.c     |  40 ++---
 sys/vfs/hammer2/hammer2_xxhash.h   |   2 +-
 23 files changed, 314 insertions(+), 147 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/68b321c1c2fcb76069594715a2a617f08aeb59ec


-- 
DragonFly BSD source repository



More information about the Commits mailing list