OSDN Git Service

nfsd: Do not refuse to serve out of cache
authorTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 28 Mar 2018 16:18:01 +0000 (12:18 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 11 May 2018 19:48:57 +0000 (15:48 -0400)
commit7e5d0e0de0a01d6aa3a4758dc303c2dcc603e49b
tree5d2e015211af1983e4d0e6c9e6a7297179d58f6d
parentdac2707227bf35c19f7771e5f19b61bc334b6cd1
nfsd: Do not refuse to serve out of cache

Currently the knfsd replay cache appears to try to refuse replying to
retries that come within 200ms of the cache entry being created. That
makes limited sense in today's world of high speed TCP.

After a TCP disconnection, a client can very easily reconnect and retry
an rpc in less than 200ms.  If this logic drops that retry, however, the
client may be quite slow to retry again.  This logic is original to the
first reply cache implementation in 2.1, and may have made more sense
for UDP clients that retried much more frequently.

After this patch we will still drop on finding the original request
still in progress.  We may want to fix that as well at some point,
though it's less likely.

Note that svc_check_conn_limits is often the cause of those
disconnections.  We may want to fix that some day.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Acked-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/cache.h
fs/nfsd/nfscache.c