From 028626a86ea409f908783b9007c02877f20be43e Mon Sep 17 00:00:00 2001 From: N Balachandran Date: Mon, 13 Feb 2017 16:49:06 +0530 Subject: 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 Reviewed-on: https://review.gluster.org/16610 Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System Reviewed-by: MOHIT AGRAWAL Reviewed-by: Shyamsundar Ranganathan --- xlators/cluster/dht/src/dht-common.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'xlators/cluster') diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index e8fde70b61a..447279ecd34 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -3934,6 +3934,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 @@ -3948,7 +3949,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 */ @@ -4356,10 +4356,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 */ @@ -4374,6 +4375,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_COOKIE (frame, dht_file_removexattr_cbk, subvol, subvol, subvol->fops->removexattr, -- cgit