lkml.org 
[lkml]   [2006]   [May]   [30]   [last100]   RSS Feed
Views: [more markup]   [less markup]   [headers]   [forward]  
 
 
Messages in this thread
/
DateWed, 31 May 2006 08:28:02 +0530
FromBalbir Singh <>
SubjectRe: [PATCH] Per-superblock unused dentry LRU lists V3
David Chinner wrote:
> On Tue, May 30, 2006 at 05:04:38PM +0200, Jan Blunck wrote:
>>> David Chinner <dgc@sgi.com> wrote:
>>> -
>>> void shrink_dcache_sb(struct super_block * sb)
>>> {
> ....
>>> +       __shrink_dcache_sb(sb, &sb->s_dentry_lru_nr, 0);
>>> }
>> This doesn't prune all the dentries on the unused list. The parents of the
>> pruned dentries are added to the unused list. Therefore just shrinking
>> sb->s_dentry_lru_nr dentries isn't enough.
> 
> Yes, you are right, Jan. I'm surprised I didn't see problems due to this.
> The original patch got this right by shrinking in this case until the list
> was empty. I'll wrap this one in a while loop...
> 
> Cheers,
> 
> Dave.

Good catch,

I suspect the reason why the problem never showed up is because select_parent()
would take care of ensuring that the parent entries move to LRU list (this is
the case of regular umounts, which do not call shrink_dcache_sb() directly).

Maybe even the dentry_unused list should be per-superblock now.

-- 
        Regards,
	Balbir Singh,
	Linux Technology Center,
	IBM Software Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-05-31 05:05    [from the cache]
©2003-2008