From ea95631ff47c8048f039faedbc0faa918c4e165a Mon Sep 17 00:00:00 2001 From: Pranith Kumar K Date: Thu, 5 Sep 2019 16:12:39 +0530 Subject: cluster/ec: quorum-count implementation fixes: #721 Change-Id: I5333540e3c635ccf441cf1f4696e4c8986e38ea8 Signed-off-by: Pranith Kumar K --- xlators/cluster/ec/src/ec-common.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'xlators/cluster/ec/src/ec-common.c') diff --git a/xlators/cluster/ec/src/ec-common.c b/xlators/cluster/ec/src/ec-common.c index e243b8ba5d9..dea987ef319 100644 --- a/xlators/cluster/ec/src/ec-common.c +++ b/xlators/cluster/ec/src/ec-common.c @@ -707,6 +707,19 @@ ec_child_select(ec_fop_data_t *fop) return 0; } + if (!fop->parent && fop->lock_count && + (fop->locks[0].update[EC_DATA_TXN] || + fop->locks[0].update[EC_METADATA_TXN])) { + if (ec->quorum_count && (num < ec->quorum_count)) { + gf_msg(ec->xl->name, GF_LOG_ERROR, 0, EC_MSG_CHILDS_INSUFFICIENT, + "Insufficient available children " + "for this request (have %d, need " + "%d). %s", + num, ec->quorum_count, ec_msg_str(fop)); + return 0; + } + } + return 1; } -- cgit