1. 16 9月, 2009 6 次提交
  2. 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
  3. 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
  4. 28 8月, 2009 1 次提交
  5. 21 8月, 2009 4 次提交
  6. 29 7月, 2009 7 次提交
  7. 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
  8. 19 6月, 2009 2 次提交
  9. 17 6月, 2009 2 次提交
  10. 07 5月, 2009 1 次提交
  11. 04 5月, 2009 2 次提交
  12. 02 5月, 2009 3 次提交
    • J
      nfsd4: remove unused dl_trunc · 6707bd3d
      J. Bruce Fields 提交于
      There's no point in keeping this field around--it's always zero.
      
      (Background: the protocol allows you to tell the client that the file is
      about to be truncated, as an optimization to save the client from
      writing back dirty pages that will just be discarded.  We don't
      implement this hint.  If we do some day, adding this field back in will
      be the least of the work involved.)
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      6707bd3d
    • J
      nfsd4: eliminate struct nfs4_cb_recall · b53d40c5
      J. Bruce Fields 提交于
      The nfs4_cb_recall struct is used only in nfs4_delegation, so its
      pointer to the containing delegation is unnecessary--we could just use
      container_of().
      
      But there's no real reason to have this a separate struct at all--just
      move these fields to nfs4_delegation.
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      b53d40c5
    • J
      nfsd4: rename callback struct to cb_conn · c237dc03
      J. Bruce Fields 提交于
      I want to use the name for a struct that actually does represent a
      single callback.
      
      (Actually, I've never been sure it helps to a separate struct for the
      callback information.  Some day maybe those fields could just be dumped
      into struct nfs4_client.  I don't know.)
      Signed-off-by: NJ. Bruce Fields <bfields@citi.umich.edu>
      c237dc03
  13. 30 4月, 2009 2 次提交
  14. 29 4月, 2009 1 次提交
  15. 25 4月, 2009 1 次提交
  16. 04 4月, 2009 2 次提交