[OpenAFS-devel] Linux cache manager throwing away callbacks

Simon Wilkinson sxw@inf.ed.ac.uk
Mon, 19 Jan 2009 10:57:50 +0000


Hi,

I think I've found a bug in the Linux CM, which causes a busy machine  
to prematurely throw away callbacks. The cache manager implements its  
own version of dentry_iput, which calls afs_InactiveVcache, which in  
turn discards any callbacks for that vcache. Unfortunately, it appears  
that dentry_iput is called whenever the kernel is dereferencing a  
dentry, which it does pretty frequently if you're doing a lot of file  
system operations. Originally InactiveVCache was only called if the  
refcount was going from 2->1 (meaning the only active copy of the  
inode is on the AFS LRU queue), or if the vcache was marked as being  
unlinked, but linux-dentry-iput-20060813 removed this logic in favour  
of always calling InactiveVCache.

Anyone know the history behind any of this?

Cheers,

Simon.