--- /dev/null
+From 15f0ec941f4f908fefa23a30ded8358977cc1cc0 Mon Sep 17 00:00:00 2001
+From: Jan Stancek <jstancek@redhat.com>
+Date: Fri, 3 Jan 2020 18:37:18 +0100
+Subject: mm/hugetlbfs: fix for_each_hstate() loop in init_hugetlbfs_fs()
+
+From: Jan Stancek <jstancek@redhat.com>
+
+commit 15f0ec941f4f908fefa23a30ded8358977cc1cc0 upstream.
+
+LTP memfd_create04 started failing for some huge page sizes
+after v5.4-10135-gc3bfc5dd73c6.
+
+The problem is the check introduced to for_each_hstate() loop that
+should skip default_hstate_idx. Since it doesn't update 'i' counter,
+all subsequent huge page sizes are skipped as well.
+
+Fixes: 8fc312b32b25 ("mm/hugetlbfs: fix error handling when setting up mounts")
+Signed-off-by: Jan Stancek <jstancek@redhat.com>
+Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/hugetlbfs/inode.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/fs/hugetlbfs/inode.c
++++ b/fs/hugetlbfs/inode.c
+@@ -1478,8 +1478,10 @@ static int __init init_hugetlbfs_fs(void
+ /* other hstates are optional */
+ i = 0;
+ for_each_hstate(h) {
+- if (i == default_hstate_idx)
++ if (i == default_hstate_idx) {
++ i++;
+ continue;
++ }
+
+ mnt = mount_one_hugetlbfs(h);
+ if (IS_ERR(mnt))