On Wed, Sep 02, 2020 at 11:24:59AM +0000, yaoaili [么爱利] wrote: > PageHuge(p) branch will never be true,but for compound page we need to set page_flags to correct value. You're missing a Signed-off-by line. Your analysis is correct; PageHuge was tested for a few dozen lines higher, and we ran off to a different function. Ad far as I understand this function, this looks right to me. Reviewed-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index f1aa6433f404..e6995976b11d 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -1382,7 +1382,7 @@ int memory_failure(unsigned long pfn, int flags) > * page_remove_rmap() in try_to_unmap_one(). So to determine page status > * correctly, we save a copy of the page flags at this time. > */ > - if (PageHuge(p)) > + if (PageCompound(p)) > page_flags = hpage->flags; > else > page_flags = p->flags; > -- > 2.25.1