From 7c7bbc027feb4c5b233e3078951e5bb1d9fc4618 Mon Sep 17 00:00:00 2001 From: Raghavendra Bhat Date: Thu, 9 Apr 2015 18:44:23 +0530 Subject: 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 Reviewed-on: http://review.gluster.org/10179 Tested-by: Gluster Build System Reviewed-by: Venky Shankar Reviewed-by: Niels de Vos --- xlators/nfs/server/src/nfs3.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'xlators/nfs/server/src') 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) \ -- cgit