Re: [PATCH] Per-superblock unused dentry LRU lists V3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David Chinner wrote:
On Tue, May 30, 2006 at 05:04:38PM +0200, Jan Blunck wrote:
David Chinner <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux