diff options
author | Raghavendra Bhat <raghavendra@redhat.com> | 2015-04-09 18:44:23 +0530 |
---|---|---|
committer | Niels de Vos <ndevos@redhat.com> | 2015-04-13 05:45:24 +0000 |
commit | 7c7bbc027feb4c5b233e3078951e5bb1d9fc4618 (patch) | |
tree | 4766aa8ccdf1b4f1317d4162602ebb06e2a0b193 /xlators/nfs | |
parent | 3fc4f31a78e06dc09e03a958be500683dc9bcd78 (diff) |
nfs: do not overwrite the return value and errno of resolve operation
* In auth status check which is done in the resume function, the op_ret and
op_errno values saved in nfs3_call_state are overwritten by the return value
of the auth status check function.
Change-Id: Id4682ddd399c78a1cef6313a534892ef309c57a6
BUG: 1210338
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Reviewed-on: http://review.gluster.org/10179
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Venky Shankar <vshankar@redhat.com>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Diffstat (limited to 'xlators/nfs')
-rw-r--r-- | xlators/nfs/server/src/nfs3.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c index 1a94c00ce8c..4e03277b496 100644 --- a/xlators/nfs/server/src/nfs3.c +++ b/xlators/nfs/server/src/nfs3.c @@ -249,12 +249,15 @@ out: #define nfs3_check_fh_auth_status(cst, nfstat, is_write_op, erlabl) \ do { \ + int auth_ret = 0; \ + int auth_errno = 0; \ xlator_t *xlatorp = NULL; \ char buf[256], gfid[256]; \ rpc_transport_t *trans = NULL; \ - cst->resolve_ret = cst->resolve_errno = \ + \ + auth_ret = auth_errno = \ nfs3_fh_auth_nfsop (cst, is_write_op); \ - if ((cst)->resolve_ret < 0) { \ + if (auth_ret < 0) { \ trans = rpcsvc_request_transport (cst->req); \ xlatorp = nfs3_fh_to_xlator (cst->nfs3state, \ &cst->resolvefh); \ @@ -264,7 +267,7 @@ out: xlatorp ? xlatorp->name : "ERR", gfid); \ gf_log (GF_NFS3, GF_LOG_ERROR, "Unable to resolve FH"\ ": %s", buf); \ - nfstat = nfs3_errno_to_nfsstat3 (-cst->resolve_errno);\ + nfstat = nfs3_errno_to_nfsstat3 (-auth_errno);\ goto erlabl; \ } \ } while (0) \ |