]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit5877a558a0809412a580b62e5dde98bb7904b834
treedf95cd2ee9b5fc9663b8fa97e81a4ff1387f2d6e
parentcd4d142021f75c9c14cc25db451c53e000fd7d60
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