Re: [RFC PATCH] hugetlbfs: fix the hugetlbfs can not be mounted

From: Andrew Morton
Date: Thu Nov 03 2016 - 15:19:02 EST


On Sat, 29 Oct 2016 14:08:31 +0800 zhongjiang <zhongjiang@xxxxxxxxxx> wrote:

> From: zhong jiang <zhongjiang@xxxxxxxxxx>
>
> Since 'commit 3e89e1c5ea84 ("hugetlb: make mm and fs code explicitly non-modular")'
> bring in the mainline. mount hugetlbfs will result in the following issue.
>
> mount: unknown filesystme type 'hugetlbfs'
>
> because previous patch remove the module_alias_fs, when we mount the fs type,
> the caller get_fs_type can not find the filesystem.
>
> The patch just recover the module_alias_fs to identify the hugetlbfs.

hm, 3e89e1c5ea84 ("hugetlb: make mm and fs code explicitly
non-modular") was merged almost a year ago. And you are apparently the
first person to discover this regression. Can you think why that is?

> index 4fb7b10..b63e7de 100644
> --- a/fs/hugetlbfs/inode.c
> +++ b/fs/hugetlbfs/inode.c
> @@ -35,6 +35,7 @@
> #include <linux/security.h>
> #include <linux/magic.h>
> #include <linux/migrate.h>
> +#include <linux/module.h>
> #include <linux/uio.h>
>
> #include <asm/uaccess.h>
> @@ -1209,6 +1210,7 @@ static struct dentry *hugetlbfs_mount(struct file_system_type *fs_type,
> .mount = hugetlbfs_mount,
> .kill_sb = kill_litter_super,
> };
> +MODULE_ALIAS_FS("hugetlbfs");
>
> static struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
>