sunrpc: never return expired entries in sunrpc_cache_lookup
authorNeilBrown <neilb@suse.de>
Wed, 3 Feb 2010 06:31:31 +0000 (17:31 +1100)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Mon, 15 Mar 2010 01:48:52 +0000 (21:48 -0400)
commitd202cce8963d9268ff355a386e20243e8332b308
treedf95cd2ee9b5fc9663b8fa97e81a4ff1387f2d6e
parent2f50d8b63dd6e5320a9d223298df19df3502da29
sunrpc: never return expired entries in sunrpc_cache_lookup

If sunrpc_cache_lookup finds an expired entry, remove it from
the cache and return a freshly created non-VALID entry instead.
This ensures that we only ever get a usable entry, or an
entry that will become usable once an update arrives.
i.e. we will never need to repeat the lookup.

This allows us to remove the 'is_expired' test from cache_check
(i.e. from cache_is_valid).  cache_check should never get an expired
entry as 'lookup' will never return one.  If it does happen - due to
inconvenient timing - then just accept it as still valid, it won't be
very much past it's use-by date.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
net/sunrpc/cache.c