1. 16 12月, 2009 1 次提交
  2. 15 12月, 2009 2 次提交
  3. 14 11月, 2009 1 次提交
  4. 06 11月, 2009 1 次提交
  5. 28 10月, 2009 2 次提交
  6. 29 9月, 2009 1 次提交
    • A
      nfsd41: use sv_max_mesg for forechannel max sizes · ddc04fd4
      Andy Adamson 提交于
      ca_maxresponsesize and ca_maxrequest size include the RPC header.
      
      sv_max_mesg is sv_max_payolad plus a page for overhead and is used in
      svc_init_buffer to allocate server buffer space for both the request and reply.
      Note that this means we can service an RPC compound that requires
      ca_maxrequestsize (MAXWRITE) or ca_max_responsesize (MAXREAD) but that we do
      not support an RPC compound that requires both ca_maxrequestsize and
      ca_maxresponsesize.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      [bfields@citi.umich.edu: more documentation updates]
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      ddc04fd4
  7. 22 9月, 2009 1 次提交
  8. 16 9月, 2009 6 次提交
  9. 02 9月, 2009 4 次提交
    • A
      nfsd41: replace page based DRC with buffer based DRC · 557ce264
      Andy Adamson 提交于
      Use NFSD_SLOT_CACHE_SIZE size buffers for sessions DRC instead of holding nfsd
      pages in cache.
      
      Connectathon testing has shown that 1024 bytes for encoded compound operation
      responses past the sequence operation is sufficient, 512 bytes is a little too
      small. Set NFSD_SLOT_CACHE_SIZE to 1024.
      
      Allocate memory for the session DRC in the CREATE_SESSION operation
      to guarantee that the memory resource is available for caching responses.
      Allocate each slot individually in preparation for slot table size negotiation.
      
      Remove struct nfsd4_cache_entry and helper functions for the old page-based
      DRC.
      
      The iov_len calculation in nfs4svc_encode_compoundres is now always
      correct.  Replay is now done in nfsd4_sequence under the state lock, so
      the session ref count is only bumped on non-replay. Clean up the
      nfs4svc_encode_compoundres session logic.
      
      The nfsd4_compound_state statp pointer is also not used.
      Remove nfsd4_set_statp().
      
      Move useful nfsd4_cache_entry fields into nfsd4_slot.
      
      Signed-off-by: Andy Adamson <andros@netapp.com
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      557ce264
    • A
      nfsd41: replace nfserr_resource in pure nfs41 responses · bdac86e2
      Andy Adamson 提交于
      nfserr_resource is not a legal error for NFSv4.1. Replace it with
      nfserr_serverfault for EXCHANGE_ID and CREATE_SESSION processing.
      
      We will also need to map nfserr_resource to other errors in routines shared
      by NFSv4.0 and NFSv4.1
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      bdac86e2
    • A
      nfsd41: use session maxreqs for sequence target and highest slotid · a8dfdaeb
      Andy Adamson 提交于
      This fixes a bug in the sequence operation reply.
      
      The sequence operation returns the highest slotid it will accept in the future
      in sr_highest_slotid, and the highest slotid it prefers the client to use.
      Since we do not re-negotiate the session slot table yet, these should both
      always be set to the session ca_maxrequests.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      a8dfdaeb
    • A
      nfsd41: bound forechannel drc size by memory usage · a649637c
      Andy Adamson 提交于
      By using the requested ca_maxresponsesize_cached * ca_maxresponses to bound
      a forechannel drc request size, clients can tailor a session to usage.
      
      For example, an I/O session (READ/WRITE only) can have a much smaller
      ca_maxresponsesize_cached (for only WRITE compound responses) and a lot larger
      ca_maxresponses to service a large in-flight data window.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      a649637c
  10. 29 8月, 2009 1 次提交
    • A
      nfsd41: expand solo sequence check · 468de9e5
      Andy Adamson 提交于
      Compounds consisting of only a sequence operation don't need any
      additional caching beyond the sequence information we store in the slot
      entry.  Fix nfsd4_is_solo_sequence to identify this case correctly.
      
      The additional check for a failed sequence in nfsd4_store_cache_entry()
      is redundant, since the nfsd4_is_solo_sequence call lower down catches
      this case.
      
      The final ce_cachethis set in nfsd4_sequence is also redundant.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      468de9e5
  11. 28 8月, 2009 1 次提交
  12. 21 8月, 2009 4 次提交
  13. 29 7月, 2009 7 次提交
  14. 15 7月, 2009 1 次提交
    • A
      nfsd41: use globals for DRC limits · 4bd9b0f4
      Andy Adamson 提交于
      The version 4.1 DRC memory limit and tracking variables are server wide and
      session specific. Replace struct svc_serv fields with globals.
      Stop using the svc_serv sv_lock.
      
      Add a spinlock to serialize access to the DRC limit management variables which
      change on session creation and deletion (usage counter) or (future)
      administrative action to adjust the total DRC memory limit.
      Signed-off-by: NAndy Adamson <andros@netapp.com>
      Signed-off-by: NBenny Halevy <bhalevy@panasas.com>
      4bd9b0f4
  15. 19 6月, 2009 2 次提交
  16. 17 6月, 2009 2 次提交
  17. 07 5月, 2009 1 次提交
  18. 04 5月, 2009 2 次提交