<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
From: NeilBrown &lt;neilb@cse.unsw.edu.au&gt;

nfsd_setuser was not called until after filehandle lookup was done, so
filehandle lookup would use the wrong userid, and so the permission checking
in nfsd_acceptable would be bogus.



---

 25-akpm/fs/nfsd/nfsfh.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff -puN fs/nfsd/nfsfh.c~nfsd-01-stale-filehandles-fixes fs/nfsd/nfsfh.c
--- 25/fs/nfsd/nfsfh.c~nfsd-01-stale-filehandles-fixes	Thu Jan 15 17:41:18 2004
+++ 25-akpm/fs/nfsd/nfsfh.c	Thu Jan 15 17:42:51 2004
@@ -164,6 +164,9 @@ fh_verify(struct svc_rqst *rqstp, struct
 			goto out;
 		}
 
+		/* Set user creds for this exportpoint */
+		nfsd_setuser(rqstp, exp);
+
 		/*
 		 * Look up the dentry using the NFS file handle.
 		 */
@@ -224,9 +227,6 @@ fh_verify(struct svc_rqst *rqstp, struct
 	inode = dentry-&gt;d_inode;
 
 
-	/* Set user creds for this exportpoint */
-	nfsd_setuser(rqstp, exp);
-
 	/* Type check. The correct error return for type mismatches
 	 * does not seem to be generally agreed upon. SunOS seems to
 	 * use EISDIR if file isn't S_IFREG; a comment in the NFSv3

_
</pre></body></html>