Sorry for noise, left off David On 10/17/19 5:08 PM, Mike Kravetz wrote: > Cc: David > On 10/17/19 3:38 AM, Chengguang Xu wrote: >> In order to avoid using incorrect mnt, we should set >> mnt to NULL when we get error from mount_one_hugetlbfs(). >> >> Signed-off-by: Chengguang Xu <cgxu...@mykernel.net> >> --- >> fs/hugetlbfs/inode.c | 9 ++++++--- >> 1 file changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c >> index a478df035651..427d845e7706 100644 >> --- a/fs/hugetlbfs/inode.c >> +++ b/fs/hugetlbfs/inode.c >> @@ -1470,9 +1470,12 @@ static int __init init_hugetlbfs_fs(void) >> i = 0; >> for_each_hstate(h) { >> mnt = mount_one_hugetlbfs(h); >> - if (IS_ERR(mnt) && i == 0) { >> - error = PTR_ERR(mnt); >> - goto out; >> + if (IS_ERR(mnt)) { >> + if (i == 0) { >> + error = PTR_ERR(mnt); >> + goto out; >> + } >> + mnt = NULL; >> } >> hugetlbfs_vfsmount[i] = mnt; >> i++; > > Thanks! > > That should be fixed. It was introduced with commit 32021982a324 ("hugetlbfs: > Convert to fs_context"). > > That commit also changed the condition for which init_hugetlbfs_fs() would > 'error' and remove the inode cache. Previously, it would do that if there > was an error creating a mount for the default_hstate_idx hstate. It now does > that for the '0' hstate, and 0 is not always equal to default_hstate_idx. > > David was that intentional or an oversight? I can fix up, just wanted to > make sure there was not some reason for the change. >
-- Mike Kravetz