1. 08 Sep, 2010 1 commit
  2. 07 Sep, 2010 4 commits
    • NeilBrown's avatar
      sunrpc/cache: allow threads to block while waiting for cache update. · f16b6e8d
      NeilBrown authored
      The current practice of waiting for cache updates by queueing the
      whole request to be retried has (at least) two problems.
      
      1/ With NFSv4, requests can be quite complex and re-trying a whole
        request when a later part fails should only be a last-resort, not a
        normal practice.
      
      2/ Large requests, and in particular any 'write' request, will not be
        queued by the current code and doing so would be undesirable.
      
      In many cases only a very sort wait is needed before the cache gets
      valid data.
      
      So, providing the underlying transport permits it by setting
       ->thread_wait,
      arrange to wait briefly for an upcall to be completed (as reflected in
      the clearing of CACHE_PENDING).
      If the short wait was not long enough and CACHE_PENDING is still set,
      fall back on the old approach.
      
      The 'thread_wait' value is set to 5 seconds when there are spare
      threads, and 1 second when there are no spare threads.
      
      These values are probably much higher than needed, but will ensure
      some forward progress.
      
      Note that as we only request an update for a non-valid item, and as
      non-valid items are updated in place it is extremely unlikely that
      cache_check will return -ETIMEDOUT.  Normally cache_defer_req will
      sleep for a short while and then find that the item is_valid.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      f16b6e8d
    • NeilBrown's avatar
      sunrpc: use seconds since boot in expiry cache · c5b29f88
      NeilBrown authored
      This protects us from confusion when the wallclock time changes.
      
      We convert to and from wallclock when  setting or reading expiry
      times.
      
      Also use seconds since boot for last_clost time.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      c5b29f88
    • NeilBrown's avatar
      sunrpc: extract some common sunrpc_cache code from nfsd · 17cebf65
      NeilBrown authored
      Rather can duplicating this idiom twice, put it in an inline function.
      This reduces the usage of 'expiry_time' out side the sunrpc/cache.c
      code and thus the impact of a change that is about to be made to that
      field.
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      17cebf65
    • Andy Adamson's avatar
      nfsd: remove duplicate NFS4_STATEID_SIZE declaration · 1132b260
      Andy Adamson authored
      Use NFS4_STATEID_SIZE from include/linux/nfs4
      Signed-off-by: default avatarAndy Adamson <andros@netapp.com>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      1132b260
  3. 29 Aug, 2010 3 commits
  4. 28 Aug, 2010 28 commits
  5. 27 Aug, 2010 4 commits