From 951aa4d0837007249046b8ca8362d0d2024cb252 Mon Sep 17 00:00:00 2001 From: Soumya Koduri Date: Wed, 13 Jul 2016 16:24:31 +0530 Subject: nfs: Reset cs->resolvedhard while resolving an entry If an entry is not found in the inode table, nfs xlator should be resolving it by sending an explicit lookup to the brick process. But currently its broken in case of NFS3_LOOKUP fop where in the server bails out early resulting in sending pargfid attributes to the client. To fix the same reset 'cs->resolvedhard' so that an explicit lookup is done for the entry in the resume_fn "nfs3_lookup_resume()". This is backport of the below mainline patch - http://review.gluster.org/14911 BUG: 1357257 >Change-Id: I999f8bca7ad008526c174d13f69886dc809d9552 >Signed-off-by: Soumya Koduri >BUG: 1356068 >Reviewed-on: http://review.gluster.org/14911 >CentOS-regression: Gluster Build System >NetBSD-regression: NetBSD Build System >Smoke: Gluster Build System >Reviewed-by: Niels de Vos >(cherry picked from commit 3c485cb896837c8e362fd0b094325002ce806ac4) Change-Id: Ifeb21887810115369ca2ae6c8c3d3619d4e6c066 Reviewed-on: http://review.gluster.org/14941 Reviewed-by: Kaleb KEITHLEY Tested-by: soumya k Reviewed-by: jiademing.dd Smoke: Gluster Build System NetBSD-regression: NetBSD Build System CentOS-regression: Gluster Build System --- xlators/nfs/server/src/nfs3-helpers.c | 1 + 1 file changed, 1 insertion(+) (limited to 'xlators') diff --git a/xlators/nfs/server/src/nfs3-helpers.c b/xlators/nfs/server/src/nfs3-helpers.c index ad4c87e69d7..5ed57bde0e2 100644 --- a/xlators/nfs/server/src/nfs3-helpers.c +++ b/xlators/nfs/server/src/nfs3-helpers.c @@ -3786,6 +3786,7 @@ nfs3_fh_resolve_entry_hard (nfs3_call_state_t *cs) (nfs3_create_op (cs) && !nfs3_create_exclusive_op (cs))) { cs->lookuptype = GF_NFS3_FRESH; cs->resolve_ret = 0; + cs->hardresolved = 0; nfs3_call_resume (cs); } else { cs->hardresolved = 1; -- cgit