From: David Howells Date: Wed, 4 Apr 2018 12:41:26 +0000 (+0100) Subject: afs: Be more aggressive in retiring cached vnodes X-Git-Tag: v4.17-rc1~90^2~9 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=678edd09c24f8a47ed88b3e172e05cc4f611bfcd;p=linux.git afs: Be more aggressive in retiring cached vnodes When relinquishing cookies, either due to iget failure or to inode eviction, retire a cookie if we think the corresponding vnode got deleted on the server rather than just letting it lie in the cache. Signed-off-by: David Howells --- diff --git a/fs/afs/inode.c b/fs/afs/inode.c index 42f83fd5a896..c942c79fc5f0 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -327,7 +327,7 @@ struct inode *afs_iget(struct super_block *sb, struct key *key, /* failure */ bad_inode: #ifdef CONFIG_AFS_FSCACHE - fscache_relinquish_cookie(vnode->cache, 0); + fscache_relinquish_cookie(vnode->cache, ret == -ENOENT); vnode->cache = NULL; #endif iget_failed(inode); @@ -511,7 +511,8 @@ void afs_evict_inode(struct inode *inode) } #ifdef CONFIG_AFS_FSCACHE - fscache_relinquish_cookie(vnode->cache, 0); + fscache_relinquish_cookie(vnode->cache, + test_bit(AFS_VNODE_DELETED, &vnode->flags)); vnode->cache = NULL; #endif