Currently, a lot of filesystem mounting functions feature in file_system_type only to be called from vfs mount_fs and call mount_bdev.
This patch adds fill_super function to that structure and lets vfs call mount_bdev when no mount function is declared. Signed-off-by: Fabian Frederick <f...@skynet.be> --- fs/super.c | 6 +++++- include/linux/fs.h | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/super.c b/fs/super.c index a89d625..7c37355 100644 --- a/fs/super.c +++ b/fs/super.c @@ -1112,7 +1112,11 @@ mount_fs(struct file_system_type *type, int flags, const char *name, void *data) goto out_free_secdata; } - root = type->mount(type, flags, name, data); + if (type->mount) + root = type->mount(type, flags, name, data); + else + root = mount_bdev(type, flags, name, data, type->fill_super); + if (IS_ERR(root)) { error = PTR_ERR(root); goto out_free_secdata; diff --git a/include/linux/fs.h b/include/linux/fs.h index 0bd9669..3e19349 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1846,8 +1846,10 @@ struct file_system_type { #define FS_USERNS_MOUNT 8 /* Can be mounted by userns root */ #define FS_USERNS_DEV_MOUNT 16 /* A userns mount does not imply MNT_NODEV */ #define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move() during rename() internally. */ + int (*fill_super)(struct super_block *, void *, int); struct dentry *(*mount) (struct file_system_type *, int, const char *, void *); + void (*kill_sb) (struct super_block *); struct module *owner; struct file_system_type * next; -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/