2002-08-14 20:47:22

by Kendrick M. Smith

[permalink] [raw]
Subject: REPOST patch 23/38: SERVER: change ->rq_vers==3 to ->rq_vers>2


In a few places on the server, I had to change code that looked like:

if (rqstp->rq_vers == 3)
/* NFSv3 behavior */
else
/* NFSv2 behavior */

to:

if (rqstp->rq_vers > 2)
/* NFSv3 behavior */
else
/* NFSv2 behavior */

so that we would get the NFSv3 behavior, not the NFSv2 behavior,
in NFSv4. This patch collects all changes of this type.

--- old/fs/nfsd/nfsfh.c Sun Aug 11 22:53:12 2002
+++ new/fs/nfsd/nfsfh.c Sun Aug 11 22:53:33 2002
@@ -107,7 +107,7 @@ fh_verify(struct svc_rqst *rqstp, struct
int fsid = 0;

error = nfserr_stale;
- if (rqstp->rq_vers == 3)
+ if (rqstp->rq_vers > 2)
error = nfserr_badhandle;

if (fh->fh_version == 1) {
@@ -171,7 +171,7 @@ fh_verify(struct svc_rqst *rqstp, struct
* Look up the dentry using the NFS file handle.
*/
error = nfserr_stale;
- if (rqstp->rq_vers == 3)
+ if (rqstp->rq_vers > 2)
error = nfserr_badhandle;

if (fh->fh_version != 1) {
--- old/fs/nfsd/vfs.c Thu Aug 1 16:16:20 2002
+++ new/fs/nfsd/vfs.c Sun Aug 11 22:53:33 2002
@@ -1401,7 +1401,7 @@ nfsd_readdir(struct svc_rqst *rqstp, str
eof = !cd.eob;

if (cd.offset) {
- if (rqstp->rq_vers == 3)
+ if (rqstp->rq_vers > 2)
(void)xdr_encode_hyper(cd.offset, file.f_pos);
else
*cd.offset = htonl(file.f_pos);