aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd/vfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfsd/vfs.c')
-rw-r--r--fs/nfsd/vfs.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 8d6b5c483ae1..0a18149ce963 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -192,15 +192,14 @@ nfsd_lookup(struct svc_rqst *rqstp, struct svc_fh *fhp, const char *name,
192 192
193 exp2 = exp_parent(exp->ex_client, mnt, dentry, 193 exp2 = exp_parent(exp->ex_client, mnt, dentry,
194 &rqstp->rq_chandle); 194 &rqstp->rq_chandle);
195 if (IS_ERR(exp2)) { 195 if (PTR_ERR(exp2) == -ENOENT) {
196 dput(dentry);
197 dentry = dget(dparent);
198 } else if (IS_ERR(exp2)) {
196 host_err = PTR_ERR(exp2); 199 host_err = PTR_ERR(exp2);
197 dput(dentry); 200 dput(dentry);
198 mntput(mnt); 201 mntput(mnt);
199 goto out_nfserr; 202 goto out_nfserr;
200 }
201 if (!exp2) {
202 dput(dentry);
203 dentry = dget(dparent);
204 } else { 203 } else {
205 exp_put(exp); 204 exp_put(exp);
206 exp = exp2; 205 exp = exp2;