git: hammer2 - bug fixes

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Aug 30 20:46:31 PDT 2015


commit b5b45574b1a9e411d59138bb0f99663be5618bac
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Aug 30 19:55:53 2015 -0700

    hammer2 - bug fixes
    
    * When a dirty inode is reclaimed meta-data changes stored in the inode
      structure could sometimes get lost.  These changes must be synchronized
      to the chains in the underlying cluster nodes.
    
      Repurpose the unlinkq into a more general 'sideq' that handles both
      deletion-on-reclaim and dirty-meta-data-on-reclaim.
    
      Add a flag to the inode to represent when it is on the sideq, preventing
      situations where it might be added twice.
    
    * Enable the free->allocated transition in the bulkfree code.  Add
      additional statistics and an underflow/overflow check for
      hammer2_bmap_data->avail.  Also adjust the volume free space
      in both directions.  Do not update any live field if 'nofree' is
      set for the chain (~1GB granularity representing possible
      frontend/backend races).

Summary of changes:
 sys/vfs/hammer2/hammer2.h          | 13 ++++---
 sys/vfs/hammer2/hammer2_bulkfree.c | 79 +++++++++++++++++++++++++++++---------
 sys/vfs/hammer2/hammer2_inode.c    | 55 ++++++++++++++++++--------
 sys/vfs/hammer2/hammer2_strategy.c |  5 +++
 sys/vfs/hammer2/hammer2_vfsops.c   |  6 +--
 sys/vfs/hammer2/hammer2_vnops.c    | 32 ++++++++++-----
 6 files changed, 137 insertions(+), 53 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list