diff options
| -rw-r--r-- | xlators/cluster/afr/src/afr-common.c | 2 | ||||
| -rw-r--r-- | xlators/cluster/afr/src/afr-dir-read.c | 6 | 
2 files changed, 5 insertions, 3 deletions
diff --git a/xlators/cluster/afr/src/afr-common.c b/xlators/cluster/afr/src/afr-common.c index cf55ebe1a63..3cc70d205c7 100644 --- a/xlators/cluster/afr/src/afr-common.c +++ b/xlators/cluster/afr/src/afr-common.c @@ -6876,8 +6876,6 @@ afr_ta_post_op_lock (xlator_t *this, loc_t *loc)          if (ret) {                  gf_msg (this->name, GF_LOG_ERROR, -ret, AFR_MSG_THIN_ARB,                          "Failed to get AFR_TA_DOM_MODIFY lock."); -                if (!locked) -                        goto out;                  flock1.l_type = F_UNLCK;                  ret = syncop_inodelk (priv->children[THIN_ARBITER_BRICK_INDEX],                                        AFR_TA_DOM_NOTIFY, loc, F_SETLK, &flock1, diff --git a/xlators/cluster/afr/src/afr-dir-read.c b/xlators/cluster/afr/src/afr-dir-read.c index 5218d386c79..76d0cdfa826 100644 --- a/xlators/cluster/afr/src/afr-dir-read.c +++ b/xlators/cluster/afr/src/afr-dir-read.c @@ -252,8 +252,12 @@ afr_readdir_wind (call_frame_t *frame, xlator_t *this, int subvol)  	priv = this->private;  	local = frame->local;  	fd_ctx = afr_fd_ctx_get (local->fd, this); +        if (!fd_ctx) { +                local->op_errno = EINVAL; +                local->op_ret = -1; +        } -	if (subvol == -1) { +	if (subvol == -1 || !fd_ctx) {  		AFR_STACK_UNWIND (readdir, frame, local->op_ret,  				  local->op_errno, 0, 0);  		return 0;  | 
