convenience helper get_tree_nodev()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 2 Jun 2019 00:48:55 +0000 (20:48 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 5 Jul 2019 02:01:58 +0000 (22:01 -0400)
counterpart of mount_nodev().  Switch hugetlb and pseudo to it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/hugetlbfs/inode.c
fs/libfs.c
fs/super.c
include/linux/fs_context.h

index 1dcc57189382bc5c16b6e06dd82d32a342ec944f..a478df03565179d1aa07c8db52c04a72421241f5 100644 (file)
@@ -1299,7 +1299,7 @@ static int hugetlbfs_get_tree(struct fs_context *fc)
        int err = hugetlbfs_validate(fc);
        if (err)
                return err;
-       return vfs_get_super(fc, vfs_get_independent_super, hugetlbfs_fill_super);
+       return get_tree_nodev(fc, hugetlbfs_fill_super);
 }
 
 static void hugetlbfs_fs_context_free(struct fs_context *fc)
index 7e6811ba4edd39279989c1eaa83e41bd54f7ca46..c9463dc6a5d492489945c3662d2d25b3044b4835 100644 (file)
@@ -270,7 +270,7 @@ static int pseudo_fs_fill_super(struct super_block *s, struct fs_context *fc)
 
 static int pseudo_fs_get_tree(struct fs_context *fc)
 {
-       return vfs_get_super(fc, vfs_get_independent_super, pseudo_fs_fill_super);
+       return get_tree_nodev(fc, pseudo_fs_fill_super);
 }
 
 static void pseudo_fs_free(struct fs_context *fc)
index ca2302501d3233704cf92a51f2a278491e553f35..3318225b087805eea9db0c71314fec248486411a 100644 (file)
@@ -1198,6 +1198,14 @@ int vfs_get_super(struct fs_context *fc,
 }
 EXPORT_SYMBOL(vfs_get_super);
 
+int get_tree_nodev(struct fs_context *fc,
+                 int (*fill_super)(struct super_block *sb,
+                                   struct fs_context *fc))
+{
+       return vfs_get_super(fc, vfs_get_independent_super, fill_super);
+}
+EXPORT_SYMBOL(get_tree_nodev);
+
 #ifdef CONFIG_BLOCK
 static int set_bdev_super(struct super_block *s, void *data)
 {
index c995b852ba405ff5687669ae8dbe68fe9e81b6bc..38b1ec918a4ef72dd85e4f795ca549c37eb88d3a 100644 (file)
@@ -151,6 +151,9 @@ extern int vfs_get_super(struct fs_context *fc,
                         enum vfs_get_super_keying keying,
                         int (*fill_super)(struct super_block *sb,
                                           struct fs_context *fc));
+extern int get_tree_nodev(struct fs_context *fc,
+                        int (*fill_super)(struct super_block *sb,
+                                          struct fs_context *fc));
 
 extern const struct file_operations fscontext_fops;