diff --git a/mm/ksm.c b/mm/ksm.c index 341e09c376e67ddd866cc5ae5e6d3a9f7b938695..fc6b6526099f6662564bf10dada223beec620e2d 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -1904,7 +1904,6 @@ static struct stable_node *stable_tree_insert(struct page *kpage) INIT_HLIST_HEAD(&stable_node_dup->hlist); stable_node_dup->kpfn = kpfn; - set_page_stable_node(kpage, stable_node_dup); stable_node_dup->rmap_hlist_len = 0; DO_NUMA(stable_node_dup->nid = nid); if (!need_chain) { @@ -1923,6 +1922,8 @@ static struct stable_node *stable_tree_insert(struct page *kpage) stable_node_chain_add_dup(stable_node_dup, stable_node); } + set_page_stable_node(kpage, stable_node_dup); + return stable_node_dup; }