• Neil Brown's avatar
    [PATCH] kNFSd: fix race with flushing nfsd cache. · 29b7010f
    Neil Brown authored
    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: default avatarNeil Brown <neilb@cse.unsw.edu.au>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    29b7010f
cache.c 27.7 KB