mm: memory-failure: fetch compound head after extra page refcnt is held
authorMiaohe Lin <linmiaohe@huawei.com>
Tue, 11 Jul 2023 05:50:15 +0000 (13:50 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 18 Aug 2023 17:12:20 +0000 (10:12 -0700)
commita363d1224b5add67a7cafab9fdb9f19d569fbe98
tree00a830b85aebed85d2916d1d9ec9259def94ec57
parent5885c6a62533cbda19e9eceab619bde317de0c0d
mm: memory-failure: fetch compound head after extra page refcnt is held

Page might become thp, huge page or being splited after compound head is
fetched but before page refcnt is bumped.  So hpage might be a tail page
leading to VM_BUG_ON_PAGE(PageTail(page)) in PageTransHuge().

Link: https://lkml.kernel.org/r/20230711055016.2286677-8-linmiaohe@huawei.com
Fixes: 415c64c1453a ("mm/memory-failure: split thp earlier in memory error handling")
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memory-failure.c