diff options
Diffstat (limited to 'xlators/cluster')
| -rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-data.c | 20 | 
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 6a3d6e13b1b..1a97778944c 100644 --- a/xlators/cluster/afr/src/afr-self-heal-data.c +++ b/xlators/cluster/afr/src/afr-self-heal-data.c @@ -727,14 +727,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,  | 
