git: hammer2 - Stabilization

Matthew Dillon dillon at
Mon Aug 28 16:24:55 PDT 2017

commit 30b0abf36bd7410ffa13efe87c8c55f1f9c2e876
Author: Matthew Dillon <dillon at>
Date:   Mon Aug 28 10:30:24 2017 -0700

    hammer2 - Stabilization
    * Key test in hammer2_chain_lookup() against DELETED chains no longer
      special-caes a FREEMAP_NODE when trying to find the covering parent
      chain for the range.
    * hammer2_chain_create_indirect() now re-tests that chain->parent still
      matches parent after obtaining the locked chain.  There shouldn't be
      a race here, but check anyway.
    * Do not try to delete empty indirect nodes in the flush code unless
      the chain's sub-tree is also empty.  Fixes a possible race condition
      on an indirect chain vs the kernel writing buffer cache buffers out.
      I was also concerned about indirect chains in the INITIAL state tripping
      up the test.
    * re-test inode flags after inode lock prior to calling
      hammer2_inode_chain_sync() as a simple optimization.

Summary of changes:
 sys/vfs/hammer2/hammer2_chain.c   | 13 ++++++++-----
 sys/vfs/hammer2/hammer2_flush.c   |  5 ++++-
 sys/vfs/hammer2/hammer2_freemap.c |  4 ++--
 sys/vfs/hammer2/hammer2_vfsops.c  |  5 ++++-
 4 files changed, 18 insertions(+), 9 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list