From: NeilBrown This is important for update-in-place caches which may change from being negative to posative. Thanks to "J. Bruce Fields" and Olaf Kirch --- 25-akpm/include/linux/sunrpc/cache.h | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff -puN include/linux/sunrpc/cache.h~knfsd-2-of-10-make-sure-cache_negative-is-cleared-when-a-cache-entry-is-updates include/linux/sunrpc/cache.h --- 25/include/linux/sunrpc/cache.h~knfsd-2-of-10-make-sure-cache_negative-is-cleared-when-a-cache-entry-is-updates Tue May 18 15:27:39 2004 +++ 25-akpm/include/linux/sunrpc/cache.h Tue May 18 15:27:39 2004 @@ -193,8 +193,11 @@ RTN *FNAME ARGS \ t2 = tmp; tmp = new; new = t2; \ } \ if (test_bit(CACHE_NEGATIVE, &item->MEMBER.flags)) \ - set_bit(CACHE_NEGATIVE, &tmp->MEMBER.flags); \ - else {UPDATE;} \ + set_bit(CACHE_NEGATIVE, &tmp->MEMBER.flags); \ + else { \ + UPDATE; \ + clear_bit(CACHE_NEGATIVE, &tmp->MEMBER.flags); \ + } \ } \ if (set||new) write_unlock(&(DETAIL)->hash_lock); \ else read_unlock(&(DETAIL)->hash_lock); \ _