Bug 223755 - nfs protocol V3 :write procedure patch
nfs protocol V3 :write procedure patch
Status: CLOSED DUPLICATE of bug 228854
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel (Show other bugs)
5.0
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Peter Staubach
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-01-22 02:42 EST by Xuui
Modified: 2007-11-30 17:07 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-05-02 11:41:31 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Xuui 2007-01-22 02:42:10 EST
Hi:

      I hope this is the right place 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 <xur@nanjing-fnst.com>

--- 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
Comment 1 Jeff Layton 2007-04-25 11:32:28 EDT
Have you pushed this patch upstream as well? I'd like to see this proposed and
included there before it hits any version of RHEL.
Comment 3 Peter Staubach 2007-05-02 11:41:31 EDT

*** This bug has been marked as a duplicate of 228854 ***

Note You need to log in before you can comment on or make changes to this bug.