summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-data.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c
index 4529462c3a9..2dbbd257dfa 100644
--- a/xlators/cluster/afr/src/afr-self-heal-data.c
+++ b/xlators/cluster/afr/src/afr-self-heal-data.c
@@ -722,14 +722,18 @@ __afr_selfheal_data (call_frame_t *frame, xlator_t *this, fd_t *fd,
ret = 0;
- /* Locking from (LLONG_MAX - 2) to (LLONG_MAX - 1) is for
- compatibility with older self-heal clients which do not
- hold a lock in the @priv->sh_domain domain to guard
- against concurrent ongoing self-heals
- */
- afr_selfheal_inodelk (frame, this, fd->inode, this->name,
- LLONG_MAX - 2, 1, compat_lock);
- compat = _gf_true;
+ if (priv->arbiter_count == 0) {/*TODO: delete this code after
+ 3.5.x goes out of support*/
+ /* Locking from (LLONG_MAX - 2) to (LLONG_MAX - 1) is
+ for compatibility with older self-heal clients which
+ do not hold a lock in the @priv->sh_domain domain to
+ guard against concurrent ongoing self-heals
+ */
+ afr_selfheal_inodelk (frame, this, fd->inode,
+ this->name, LLONG_MAX - 2, 1,
+ compat_lock);
+ compat = _gf_true;
+ }
}
unlock:
afr_selfheal_uninodelk (frame, this, fd->inode, this->name, 0, 0,