Hi:
I hope this is the right list for this.
My group is engaged in the NFSV3 protocol comformance test.it means ,we want to prove whether the realization of the NFSV3 protocol in all versions of the REDHAT is according to the RFC(here ,we use RFC 1813).
When we test the WRITE procedure in the realization of the REDHAT with the newest kernel ,we find some inconsistent definitions between the newest kernel and RFC1813.P49
struct WRITE3args {
nfs_fh3 file;
offset3 offset;
count3 count;
stable_how stable;
opaque data<>;
};
struct WRITE3resok {
wcc_data file_wcc;
count3 count;
stable_how committed;
writeverf3 verf;
};
struct WRITE3resfail {
wcc_data file_wcc;
};
count
The number of bytes of data to be written. If count is
0, the WRITE will succeed and return a count of 0,
barring errors due to permissions checking. The size of
data must be less than or equal to the value of the
wtmax field in the FSINFO reply structure for the file
system that contains file. If greater, the server may
write only wtmax bytes, resulting in a short write.
It told us that when the argument count is zero ,the write procedure still should be succeed.But in the test ,when we send the packet with the count equal to zero,the
server will return fail with the rpc_garbage error.Obviously it is inconsistent with RFC definition.So we make the patch as follows:
Signed-off-by: xurui <[email protected]>
--- linux-2.6.19.1/fs/nfsd/nfs3xdr.c 2006-12-12 03:32:53.000000000 +0800
+++ linux-2.6.19.1/fs/nfsd/nfs3xdr.new.c 2007-01-03 18:23:09.000000000 +0800
@@ -389,7 +389,7 @@ nfs3svc_decode_writeargs(struct svc_rqst
rqstp->rq_vec[v].iov_len = len;
args->vlen = v+1;
- return args->count == args->len && rqstp->rq_vec[0].iov_len > 0;
+ return args->count == args->len;
}
int
Thanks
Xu Rui
--------------------------------------------------
XU RUI
Dept. of Technology and Development
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
No.189, Guangzhou Rd.,Nanjing, P.R. China
Civil Defense Building 8F
Postcode: 210029
PHONE??+86+25-86630523-851
FUJITSU INTERNAL??79955850
FAX??+86+25-83317685
[email protected]
--------------------------------------------------
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs