hammer2 - Start work on quorum validation.
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 30 Mar 2015 05:45:59 +0000 (22:45 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 30 Mar 2015 05:45:59 +0000 (22:45 -0700)
commit2221183477f89177a60e7c8a337d9dc720fca9a2
tree48690dff117e5f3db960d6a683c945a141e93b14
parentb8ba9690ca56cd9ac33ff1a5185ddd164169d9ca
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
  mirror_tid.

* 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.
sys/vfs/hammer2/hammer2.h
sys/vfs/hammer2/hammer2_cluster.c
sys/vfs/hammer2/hammer2_disk.h
sys/vfs/hammer2/hammer2_ioctl.c
sys/vfs/hammer2/hammer2_ioctl.h
sys/vfs/hammer2/hammer2_vfsops.c