git: hammer2 - Start work on quorum validation.

Matthew Dillon dillon at
Sun Mar 29 22:58:35 PDT 2015

commit 2221183477f89177a60e7c8a337d9dc720fca9a2
Author: Matthew Dillon <dillon at>
Date:   Sun Mar 29 22:45:59 2015 -0700

    hammer2 - Start work on quorum validation.
    * Remove HAMMER2_PFSTYPE_SNAPSHOT, it adds unnecessary complication.
      Just make snapshots HAMMER2_PFSTYPE_MASTER.
      Add a subtype field to the inode and PFS ioctl to identify snapshots.
    * Start fleshing out the quorum code.  hammer2_chain_lock() is the core.
      It will eventually also have to be async.
      hammer2_chain_lock() now does hard quorum checks, soft master checks,
      and identifies slaves and whether synchronization is needed, based on
    * More cleanup of cluster->focus.
    * When removing nodes from a PFS cluster, since the cluster is being
      ripped apart and hammer2_inode_lock_ex() does quorum validation,
      we cannot use this function.  Just acquire and release the low-level
      inode mutex instead.

Summary of changes:
 sys/vfs/hammer2/hammer2.h         |   7 +-
 sys/vfs/hammer2/hammer2_cluster.c | 245 +++++++++++++++++++++++++++++++-------
 sys/vfs/hammer2/hammer2_disk.h    |  10 +-
 sys/vfs/hammer2/hammer2_ioctl.c   |   3 +
 sys/vfs/hammer2/hammer2_ioctl.h   |   2 +-
 sys/vfs/hammer2/hammer2_vfsops.c  |  30 +++--
 6 files changed, 243 insertions(+), 54 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list