]> git.hungrycats.org Git - linux/commit
[PATCH] kNFSd: fix race with flushing nfsd cache.
authorNeil Brown <neilb@cse.unsw.edu.au>
Mon, 23 Aug 2004 06:02:41 +0000 (23:02 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Mon, 23 Aug 2004 06:02:41 +0000 (23:02 -0700)
commit29b7010fcb6dcaac642394d8f55afe21a1eea12a
tree6a0099fe91707c490d88731c2edd0bf10bd7dc86
parenteb229d253e6cf376756101ea3fdfd4a17edc5450
[PATCH] kNFSd: fix race with flushing nfsd cache.

To purge an nfsd-authentication cache, we set the flush time to later than
last-refresh time in the cache and call cache_flush.  The easiest way to
find 'later than last-refresh' is 'now+1'.

This has two problems.

  1/ if the time-of-day clock has gone bacwards, some entries might not
     be purged
  2/ if a new entry is added in the same second as cache_purge ran, it will
     get ignored.

To resolve these issues, we set the flushtime to the maximum possible time
before calling cache_flush, and then set it back to the minimum time
afterwards.

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
net/sunrpc/cache.c