git: hammer2 hammer2 - more indirect block work, add advlock

Matthew Dillon dillon at
Mon Feb 27 21:28:08 PST 2012

commit 37aa19df44159ee32dabba1c0650cea6f7a7eadc
Author: Matthew Dillon <dillon at>
Date:   Mon Feb 27 21:22:53 2012 -0800

    hammer2 - more indirect block work, add advlock
    * Fix several bugs in the indirect block code.  Directories and files should
      both now be able to expand properly.  Except for an excessive dirty buffer
      buildup (see 'bawrite' below), we can now create regular files linearly
      and create sub-directory trees.  e.g. cpdup is starting to show results.
    * Fix an issue with readdir related to how ranged searches work (results
      can be returned in any order within the range).  Do a direct lookup of
      the key before resorting to a range.  Until we sort the keys this is not
      going to work correctly in the face of concurrent deletions.
    * Try conditionalizing bawrite() vs bdwrite() in the flush code, but there
      are still major issues when NFS is used to back a VN device for testing
      which can deadlock the system.
    * Remove or conditionalize a bunch of debugging kprintfs.

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |    4 ++
 sys/vfs/hammer2/hammer2_chain.c   |   95 ++++++++++++++++++++++++-------------
 sys/vfs/hammer2/hammer2_freemap.c |    5 ++-
 sys/vfs/hammer2/hammer2_inode.c   |    9 ++--
 sys/vfs/hammer2/hammer2_vfsops.c  |    8 +++
 sys/vfs/hammer2/hammer2_vnops.c   |   31 ++++++++++--
 6 files changed, 109 insertions(+), 43 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list