diff --git a/mm/ksm.c b/mm/ksm.c index c828630985c04bce88f5fc4ead777a0145c2eab2..7d5c767467123eb83985777cec7e0812f76d9365 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -1965,7 +1965,6 @@ static struct ksm_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) { @@ -1984,6 +1983,8 @@ static struct ksm_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; }