diff --git a/mm/ksm.c b/mm/ksm.c index 21bb3e7cf3bc73d60fac20872b05cef7b0ce957d..b2cdbe6caa712963619c5d0e1c3c615d534abd99 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -1922,7 +1922,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) { @@ -1941,6 +1940,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; }