On Fri, Mar 22, 2024 at 04:37:00PM +0800, alexs@xxxxxxxxxx wrote: > From: "Alex Shi (tencent)" <alexs@xxxxxxxxxx> > > Only single page could be reached where we set stable node after write > protect, so use folio converted func to replace page's. > > Signed-off-by: Alex Shi (tencent) <alexs@xxxxxxxxxx> > Cc: Izik Eidus <izik.eidus@xxxxxxxxxxxxxxxxxx> > Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> > Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> > Cc: Hugh Dickins <hughd@xxxxxxxxxx> > Cc: Chris Wright <chrisw@xxxxxxxxxxxx> > --- > mm/ksm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/ksm.c b/mm/ksm.c > index 15a78a9bab59..d7c4cc4a0cc1 100644 > --- a/mm/ksm.c > +++ b/mm/ksm.c > @@ -1518,7 +1518,7 @@ static int try_to_merge_one_page(struct vm_area_struct *vma, > * PageAnon+anon_vma to PageKsm+NULL stable_node: > * stable_tree_insert() will update stable_node. > */ > - set_page_stable_node(page, NULL); > + folio_set_stable_node(page_folio(page), NULL); > mark_page_accessed(page); I'd rather you did a conversion of try_to_merge_one_page() instead of just this. It'll be a fun one because you'll have to recalculate the folio after calling split_huge_page().