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.