git: hammer2 - slave sync adjustments, doc update

Matthew Dillon dillon at
Thu Apr 9 00:05:07 PDT 2015

commit f7712c4358868ec14b4f8a53f88546e0716ff32e
Author: Matthew Dillon <dillon at>
Date:   Wed Apr 8 23:58:54 2015 -0700

    hammer2 - slave sync adjustments, doc update
    * Fix the hammer2_cluster*() API, do not multiply-ref underlying chains
      when a cluster is multiply-ref'd.  Fixes issues when underlying chain
      elements of the cluster are replaced during operations.
    * Fix frontend writing issues when multiple slaves are present.
    * Adjust documentation a bit.  Get rid of the 256-way split description
      for copyid use, we aren't going to do things that way so the size for
      each physical volume can be up to ~2^64 (maybe ~2^63 to be safe).
    * Add a HAMMER2_LOOKUP_NODIRECT flag to prevent recursively returning
      the inode and remove the broken (cluster == cparent) test in the slave-sync
      code.  Doh, cluster structures are independently allocated, test was
    * Fix several other slave-sync issues when multiple slaves are present.
      (there are still some issues remaining).
    * Fix accounting for the number of mounts using a physical device
      (hmp), rename pmp_count to mount_count for clarity.

Summary of changes:
 sys/vfs/hammer2/DESIGN            | 84 +++++++++++++++++++++------------------
 sys/vfs/hammer2/hammer2.h         | 11 +++--
 sys/vfs/hammer2/hammer2_chain.c   |  7 +++-
 sys/vfs/hammer2/hammer2_cluster.c | 22 +++++-----
 sys/vfs/hammer2/hammer2_syncthr.c | 17 ++++----
 sys/vfs/hammer2/hammer2_vfsops.c  | 54 ++++++++++++++++++-------
 6 files changed, 120 insertions(+), 75 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list