On Sat, Jul 08, 2023 at 04:57:37PM +0800, Miaohe Lin wrote: > If hpage isn't Hugetlb page, MF_DELAYED is returned without unlock hpage > leading to hpage permanently locked. But this shouldn't trigger in the > real world because this PageHuge() check is just for potential problems. Right, so this if-block is dead code, how about simply removing it? Thanks, Naoya Horiguchi > > Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> > --- > mm/memory-failure.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index a6221a4bc5ea..d21ee27ad412 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -1187,8 +1187,10 @@ static int me_huge_page(struct page_state *ps, struct page *p) > struct address_space *mapping; > bool extra_pins = false; > > - if (!PageHuge(hpage)) > + if (!PageHuge(hpage)) { > + unlock_page(hpage); > return MF_DELAYED; > + } > > mapping = page_mapping(hpage); > if (mapping) { > -- > 2.33.0 > > >