On Sun, Aug 14, 2011 at 07:13:52PM +0400, Glauber Costa wrote: > This patch introduces a simple generic vfs option parser. > Right now, the only option we have is to limit the size of the dcache. > > So any user that wants to have a dcache entries limit, can specify: > > mount -o whatever_options,vfs_dcache_size=XXX <dev> <mntpoint> > > It is supposed to work well with remounts, allowing it to change > multiple over the course of the filesystem's lifecycle. > > I find mount a natural interface for handling filesystem options, > so that's what I've choosen. Feel free to yell at it at will if > you disagree. It's already been noted by both myself and Al that there is not a 1:1 mapping between mount point and superblocks.... > @@ -2350,6 +2449,12 @@ long do_mount(char *dev_name, char *dir_name, char *type_page, > else > retval = do_new_mount(&path, type_page, flags, mnt_flags, > dev_name, data_page); > + > + /* bind mounts get to respect their parents decision */ > + if (!retval && !(flags & MS_BIND)) > + vfs_set_dcache_size(path.mnt->mnt_sb, > + vfs_options.vfs_dcache_size); > + And I'm not sure that silently ignoring it in certain cases is the best way around that problem. > dput_out: > path_put(&path); > return retval; > diff --git a/include/linux/dcache.h b/include/linux/dcache.h > index d37d2a7..1a309f3 100644 > --- a/include/linux/dcache.h > +++ b/include/linux/dcache.h > @@ -251,6 +251,10 @@ extern int d_invalidate(struct dentry *); > > /* only used at mount-time */ > extern struct dentry * d_alloc_root(struct inode *); > +extern int vfs_set_dcache_size(struct super_block *sb, int size); > + > +#define DCACHE_MIN_SIZE 1024 > +extern int vfs_set_dcache_size(struct super_block *sb, int size); Where did this minimum size come from and why was that figure chosen? Needs documenting. 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