summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/nsr-server/src/recon_notify.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster/nsr-server/src/recon_notify.c')
-rw-r--r--xlators/cluster/nsr-server/src/recon_notify.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/xlators/cluster/nsr-server/src/recon_notify.c b/xlators/cluster/nsr-server/src/recon_notify.c
index 24f7cf2de..1c50de234 100644
--- a/xlators/cluster/nsr-server/src/recon_notify.c
+++ b/xlators/cluster/nsr-server/src/recon_notify.c
@@ -91,8 +91,14 @@ nsr_recon_set_leader (xlator_t *this)
if (ctx->last_reconciled_term == priv->current_term)
return;
- // No majority as of yet
- if (priv->up_children <= (priv->n_children / 2))
+ /*
+ * Quorum for reconciliation is not the same as quorum for I/O. Here,
+ * we require a true majority. The +1 is because we don't count
+ * ourselves as part of n_children or up_children.
+ *
+ * TBD: re-evaluate when to reconcile (including partial)
+ */
+ if (priv->up_children <= (priv->n_children / 2))
return;
gf_log (this->name, GF_LOG_INFO,