summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/cluster/afr/src/afr-common.c2
-rw-r--r--xlators/cluster/afr/src/afr-dir-read.c6
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;