git: hammer - Fix bugs, fix serious snapshot bug, flush adjustments

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


commit 65c894ff16a220a372ab41a11f3865f2de518c9e
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Mar 17 01:20:36 2018 -0700

    hammer - Fix bugs, fix serious snapshot bug, flush adjustments
    
    * Make sure we only flush the volume header for a general sync request
      and not for a fsync() on /.
    
    * Fix more lock order reversals when translating directory entries
      to inodes.
    
    * Separate out spmp elements into their own list to make umount ordering
      easier.
    
    * Flush in three stages.
    
      (1) flush dirty filesystem inodes
      (2) flush PFS meta-data topology up to the filesystem inodes.
      (3) flush the volume root and its meta-data up to the PFS inodes.
    
      This is staging for later sync concurrency improvements.
    
    * Fix a bug where creating enough snapshots (more than 4 total PFSs)
      causes some PFSs to lose an important flag in their blockref, which
      causes flushes to stop working properly on that PFS.

Summary of changes:
 sys/vfs/hammer2/hammer2.h          |   4 ++
 sys/vfs/hammer2/hammer2_bulkfree.c |   4 +-
 sys/vfs/hammer2/hammer2_chain.c    |  27 ++++++++--
 sys/vfs/hammer2/hammer2_flush.c    |  13 +++--
 sys/vfs/hammer2/hammer2_freemap.c  |   2 +
 sys/vfs/hammer2/hammer2_vfsops.c   | 104 ++++++++++++++++++++++++++-----------
 sys/vfs/hammer2/hammer2_xops.c     |  80 ++++++++++++++++++----------
 7 files changed, 164 insertions(+), 70 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/65c894ff16a220a372ab41a11f3865f2de518c9e


-- 
DragonFly BSD source repository



More information about the Commits mailing list