git: hammer2 - major simplification 1/many (stabilization)

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Jul 30 13:43:39 PDT 2014


commit 850687d2abc82e9681506241ad020820ebb41bbf
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Jul 30 13:35:55 2014 -0700

    hammer2 - major simplification 1/many (stabilization)
    
    * Fix a dirty chain leak due to detached inodes and the delayed vnode
      deactivation that DragonFly does.  A cache_unlink() call was missing
      to properly cycle the vnode in the nrename path and a
      hammer2_cluster_delete() needed the DELETE_PERMANENT flag to handle the
      case where the vnode was already detached.
    
    * Fix an inode reference count leak, callers of hammer2_inode_common_parent()
      were not properly dropping the returned inode.
    
    * Fix a deadlock due to front-end vs write-thread interactions.  nvtruncbuf()
      calls must not be made with an inode lock held.
    
    * Cleanup some debugging, add some debugging.

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |  2 +-
 sys/vfs/hammer2/hammer2_chain.c   |  3 +--
 sys/vfs/hammer2/hammer2_cluster.c | 10 +++++++---
 sys/vfs/hammer2/hammer2_flush.c   | 39 +++++++++++++++++++++++++++++++++++++--
 sys/vfs/hammer2/hammer2_inode.c   | 18 +++++++++++++-----
 sys/vfs/hammer2/hammer2_ioctl.c   |  3 +--
 sys/vfs/hammer2/hammer2_vfsops.c  | 27 ++++++++++++---------------
 sys/vfs/hammer2/hammer2_vnops.c   | 36 +++++++++++++++++++++++++++++-------
 8 files changed, 101 insertions(+), 37 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/850687d2abc82e9681506241ad020820ebb41bbf


-- 
DragonFly BSD source repository



More information about the Commits mailing list