1. 08 11月, 2012 4 次提交
  2. 26 9月, 2012 1 次提交
  3. 11 7月, 2012 1 次提交
  4. 01 6月, 2012 5 次提交
  5. 13 4月, 2012 2 次提交
  6. 21 3月, 2012 1 次提交
    • C
      NFSD: Fix nfs4_verifier memory alignment · ab4684d1
      Chuck Lever 提交于
      Clean up due to code review.
      
      The nfs4_verifier's data field is not guaranteed to be u32-aligned.
      Casting an array of chars to a u32 * is considered generally
      hazardous.
      
      We can fix most of this by using a __be32 array to generate the
      verifier's contents and then byte-copying it into the verifier field.
      
      However, there is one spot where there is a backwards compatibility
      constraint: the do_nfsd_create() call expects a verifier which is
      32-bit aligned.  Fix this spot by forcing the alignment of the create
      verifier in the nfsd4_open args structure.
      
      Also, sizeof(nfs4_verifer) is the size of the in-core verifier data
      structure, but NFS4_VERIFIER_SIZE is the number of octets in an XDR'd
      verifier.  The two are not interchangeable, even if they happen to
      have the same value.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      ab4684d1
  7. 18 2月, 2012 3 次提交
  8. 15 2月, 2012 1 次提交
    • J
      nfsd4: rearrange struct nfsd4_slot · 73e79482
      J. Bruce Fields 提交于
      Combine two booleans into a single flag field, move the smaller fields
      to the end.
      
      (In practice this doesn't make the struct any smaller.  But we'll be
      adding another flag here soon.)
      
      Remove some debugging code that doesn't look useful, while we're in the
      neighborhood.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      73e79482
  9. 26 11月, 2011 1 次提交
  10. 02 11月, 2011 1 次提交
  11. 24 10月, 2011 3 次提交
  12. 19 10月, 2011 1 次提交
  13. 17 10月, 2011 1 次提交
  14. 12 10月, 2011 1 次提交
  15. 11 10月, 2011 1 次提交
  16. 27 9月, 2011 2 次提交
    • J
      nfsd4: look up stateid's per clientid · 38c2f4b1
      J. Bruce Fields 提交于
      Use a separate stateid idr per client, and lookup a stateid by first
      finding the client, then looking up the stateid relative to that client.
      
      Also some minor refactoring.
      
      This allows us to improve error returns: we can return expired when the
      clientid is not found and bad_stateid when the clientid is found but not
      the stateid, as opposed to returning expired for both cases.
      
      I hope this will also help to replace the state lock mostly by a
      per-client lock, but that hasn't been done yet.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      38c2f4b1
    • J
      nfsd4: assume test_stateid always has session · 36279ac1
      J. Bruce Fields 提交于
      Test_stateid is 4.1-only and only allowed after a sequence operation, so
      this check is unnecessary.
      
      Cc: Bryan Schumaker <bjschuma@netapp.com>
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      36279ac1
  17. 17 9月, 2011 1 次提交
  18. 16 9月, 2011 1 次提交
    • M
      nfsd41: try to check reply size before operation · 58e7b33a
      Mi Jinlong 提交于
      For checking the size of reply before calling a operation,
      we need try to get maxsize of the operation's reply.
      
      v3: using new method as Bruce said,
      
       "we could handle operations in two different ways:
      
      	- For operations that actually change something (write, rename,
      	  open, close, ...), do it the way we're doing it now: be
      	  very careful to estimate the size of the response before even
      	  processing the operation.
      	- For operations that don't change anything (read, getattr, ...)
      	  just go ahead and do the operation.  If you realize after the
      	  fact that the response is too large, then return the error at
      	  that point.
      
        So we'd add another flag to op_flags: say, OP_MODIFIES_SOMETHING.  And for
        operations with OP_MODIFIES_SOMETHING set, we'd do the first thing.  For
        operations without it set, we'd do the second."
      Signed-off-by: NMi Jinlong <mijinlong@cn.fujitsu.com>
      [bfields@redhat.com: crash, don't attempt to handle, undefined op_rsize_bop]
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      58e7b33a
  19. 14 9月, 2011 1 次提交
  20. 07 9月, 2011 1 次提交
  21. 01 9月, 2011 4 次提交
  22. 28 8月, 2011 1 次提交
  23. 27 8月, 2011 2 次提交
    • J
      nfsd4: it's OK to return nfserr_symlink · 75c096f7
      J. Bruce Fields 提交于
      The nfsd4 code has a bunch of special exceptions for error returns which
      map nfserr_symlink to other errors.
      
      In fact, the spec makes it clear that nfserr_symlink is to be preferred
      over less specific errors where possible.
      
      The patch that introduced it back in 2.6.4 is "kNFSd: correct symlink
      related error returns.", which claims that these special exceptions are
      represent an NFSv4 break from v2/v3 tradition--when in fact the symlink
      error was introduced with v4.
      
      I suspect what happened was pynfs tests were written that were overly
      faithful to the (known-incomplete) rfc3530 error return lists, and then
      code was fixed up mindlessly to make the tests pass.
      
      Delete these unnecessary exceptions.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      75c096f7
    • J
      nfsd4: clean up S_IS -> NF4 file type mapping · 3d2544b1
      J. Bruce Fields 提交于
      A slightly unconventional approach to make the code more compact I could
      live with, but let's give the poor reader *some* chance.
      Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
      3d2544b1