summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorN Balachandran <nbalacha@redhat.com>2017-02-13 16:49:06 +0530
committerNiels de Vos <ndevos@redhat.com>2017-03-10 17:42:42 -0500
commitf4ad9c9eb7f062198189801ddc8cfd958bb413d9 (patch)
treeed83fa0d3ea128ab50a035a7e7a64fb5f8fa8be7
parentf7152df58b0349d3411ecadb476890ec934007dd (diff)
cluster/dht Fix error assignment in dht_*xattr2 functions
Corrected the op_errno assignments and NULL checks in the dht_sexattr2 and dht_removexattr2 functions. Earlier, they unwound with the default EINVAL op_errno if the file had been deleted. > Change-Id: Iaf837a473d769cea40132487a966c7f452990071 > BUG: 1421653 > Signed-off-by: N Balachandran <nbalacha@redhat.com> > Reviewed-on: https://review.gluster.org/16610 > Smoke: Gluster Build System <jenkins@build.gluster.org> > NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> > CentOS-regression: Gluster Build System <jenkins@build.gluster.org> > Reviewed-by: MOHIT AGRAWAL <moagrawa@redhat.com> > Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com> (cherry picked from commit 028626a86ea409f908783b9007c02877f20be43e) Signed-off-by: N Balachandran <nbalacha@redhat.com> Change-Id: Id2e91df47bcd734dda18700fb075608c1627a608 BUG: 1424915 Reviewed-on: https://review.gluster.org/16678 Tested-by: N Balachandran <nbalacha@redhat.com> Smoke: Gluster Build System <jenkins@build.gluster.org> NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> CentOS-regression: Gluster Build System <jenkins@build.gluster.org> Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com>
-rw-r--r--xlators/cluster/dht/src/dht-common.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index a9714b02b79..c3b1a541507 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -3929,6 +3929,7 @@ dht_setxattr2 (xlator_t *this, xlator_t *subvol, call_frame_t *frame, int ret)
goto err;
local = frame->local;
+ op_errno = local->op_errno;
if (we_are_not_migrating (ret)) {
/* This dht xlator is not migrating the file. Unwind and
@@ -3943,7 +3944,6 @@ dht_setxattr2 (xlator_t *this, xlator_t *subvol, call_frame_t *frame, int ret)
if (subvol == NULL)
goto err;
- op_errno = local->op_errno;
local->call_cnt = 2; /* This is the second attempt */
@@ -4351,10 +4351,11 @@ dht_removexattr2 (xlator_t *this, xlator_t *subvol, call_frame_t *frame,
dht_local_t *local = NULL;
int op_errno = EINVAL;
- if (!frame || !frame->local || !subvol)
+ if (!frame || !frame->local)
goto err;
local = frame->local;
+ op_errno = local->op_errno;
local->call_cnt = 2; /* This is the second attempt */
@@ -4369,6 +4370,9 @@ dht_removexattr2 (xlator_t *this, xlator_t *subvol, call_frame_t *frame,
return 0;
}
+ if (subvol == NULL)
+ goto err;
+
if (local->fop == GF_FOP_REMOVEXATTR) {
STACK_WIND (frame, dht_file_removexattr_cbk, subvol,
subvol->fops->removexattr, &local->loc,