git: hammer2 - serialized flush work part 2

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Jan 31 16:28:57 PST 2013


commit e2e9e2dbb419600b6f99d26f4a4d773dcc04e2f5
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Jan 30 22:41:52 2013 -0800

    hammer2 - serialized flush work part 2
    
    * Adjust the hammer2_inode_lock*() API to separate the inode lock from
      the chain lock (it gets both).  The locked chain associated with the
      inode is now returned and can change during search iterations, eventually
      to be returned via hammer2_inode_unlock*().
    
    * Fixes issues related to threads obtaining more than 1 shared lock on the
      same chain, which can deadlock deeper procedures which might need to
      temporarily upgrade the lock.
    
    * Continue working through bugs.

Summary of changes:
 sys/vfs/hammer2/hammer2.h        |  16 +--
 sys/vfs/hammer2/hammer2_inode.c  | 195 +++++++++++++++-------------
 sys/vfs/hammer2/hammer2_ioctl.c  |  21 +--
 sys/vfs/hammer2/hammer2_subr.c   |  48 +++++--
 sys/vfs/hammer2/hammer2_vfsops.c |  19 +--
 sys/vfs/hammer2/hammer2_vnops.c  | 269 +++++++++++++++++++++------------------
 6 files changed, 315 insertions(+), 253 deletions(-)

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


-- 
DragonFly BSD source repository



More information about the Commits mailing list