On Fri, Jul 29, 2011 at 05:44:18PM +0400, Glauber Costa wrote: > Simple patch that provides a function allowing its caller to set > the maximum number of dentries that can exist at the same time > at a given super block. Will be used in a later patch. Pretty simple - probably better to put it in the patch that uses it, I think. > Signed-off-by: Glauber Costa <glommer@xxxxxxxxxxxxx> > CC: Dave Chinner <david@xxxxxxxxxxxxx> > --- > fs/dcache.c | 12 ++++++++++++ > include/linux/dcache.h | 1 + > 2 files changed, 13 insertions(+), 0 deletions(-) > > diff --git a/fs/dcache.c b/fs/dcache.c > index 3bdb106..4369aa2 100644 > --- a/fs/dcache.c > +++ b/fs/dcache.c > @@ -1202,6 +1202,18 @@ static int dcache_mem_check(struct super_block *sb) > return -ENOMEM; > } > > +int vfs_set_dcache_size(struct super_block *sb, int size) > +{ > + unsigned long dr = percpu_counter_sum_positive(&sb->s_nr_dentry); > + > + if (size != sb->s_nr_dentry_max) > + prune_dcache_sb(sb, dr - size); And why shrink if the new size > the current sb->s_nr_dentry_max? And what happens when size > dr? Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html