diff options
| -rw-r--r-- | xlators/cluster/afr/src/afr-lk-common.c | 9 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr.h | 1 | 
2 files changed, 5 insertions, 5 deletions
diff --git a/xlators/cluster/afr/src/afr-lk-common.c b/xlators/cluster/afr/src/afr-lk-common.c index ef183d985cb..802f91f5fa7 100644 --- a/xlators/cluster/afr/src/afr-lk-common.c +++ b/xlators/cluster/afr/src/afr-lk-common.c @@ -913,6 +913,8 @@ afr_lock_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          local->op_errno              = op_errno;                          int_lock->lock_op_errno      = op_errno;                  } + +		int_lock->lk_attempted_count++;          }          UNLOCK (&frame->lock); @@ -1072,7 +1074,7 @@ afr_lock_blocking (call_frame_t *frame, xlator_t *this, int cookie)                          child_index++;          } -        if ((child_index == priv->child_count) && +        if ((int_lock->lk_expected_count == int_lock->lk_attempted_count) &&              ((afr_is_entrylk (int_lock, local->transaction.type) &&                int_lock->entrylk_lock_count == 0) ||               (int_lock->lock_count == 0))){ @@ -1091,10 +1093,7 @@ afr_lock_blocking (call_frame_t *frame, xlator_t *this, int cookie)          } -        if ((child_index == priv->child_count) || -            (int_lock->entrylk_lock_count == int_lock->lk_expected_count) || -            (int_lock->lock_count == int_lock->lk_expected_count)) { - +        if (int_lock->lk_expected_count == int_lock->lk_attempted_count) {                  /* we're done locking */                  gf_log (this->name, GF_LOG_DEBUG, diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h index d31290fbf40..9405ff29512 100644 --- a/xlators/cluster/afr/src/afr.h +++ b/xlators/cluster/afr/src/afr.h @@ -382,6 +382,7 @@ typedef struct {          uint64_t lock_number;          int32_t lk_call_count;          int32_t lk_expected_count; +        int32_t lk_attempted_count;          int32_t lock_op_ret;          int32_t lock_op_errno;  | 
