summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorSoumya Koduri <skoduri@redhat.com>2016-07-13 16:24:31 +0530
committerKaleb KEITHLEY <kkeithle@redhat.com>2016-07-18 13:56:20 -0700
commit951aa4d0837007249046b8ca8362d0d2024cb252 (patch)
treea10fcde56766fd8ad6a26ce39d03953c712017ea /xlators
parent24310c41a6ce7a218dca8ca8545ba4d82834497f (diff)
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 <skoduri@redhat.com> >BUG: 1356068 >Reviewed-on: http://review.gluster.org/14911 >CentOS-regression: Gluster Build System <jenkins@build.gluster.org> >NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org> >Smoke: Gluster Build System <jenkins@build.gluster.org> >Reviewed-by: Niels de Vos <ndevos@redhat.com> >(cherry picked from commit 3c485cb896837c8e362fd0b094325002ce806ac4) Change-Id: Ifeb21887810115369ca2ae6c8c3d3619d4e6c066 Reviewed-on: http://review.gluster.org/14941 Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com> Tested-by: soumya k <skoduri@redhat.com> Reviewed-by: jiademing.dd <iesool@126.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>
Diffstat (limited to 'xlators')
-rw-r--r--xlators/nfs/server/src/nfs3-helpers.c1
1 files changed, 1 insertions, 0 deletions
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;