• Andrea Arcangeli's avatar
    rmap: always use anon_vma root pointer · 288468c3
    Andrea Arcangeli authored
    Always use anon_vma->root pointer instead of anon_vma_chain.prev.
    
    Also optimize the map-paths, if a mapping is already established no need
    to overwrite it with root anon-vma list, we can keep the more finegrined
    anon-vma and skip the overwrite: see the PageAnon check in !exclusive
    case.  This is also the optimization that hidden the ksm bug as this tends
    to make ksm_might_need_to_copy skip the copy, but only the proper fix to
    ksm_might_need_to_copy guarantees not triggering the ksm bug unless ksm is
    in use.  this is an optimization only...
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
    Signed-off-by: default avatarRik van Riel <riel@redhat.com>
    [kamezawa.hiroyu@jp.fujitsu.com: fix false positive BUG_ON in __page_set_anon_rmap]
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    288468c3
rmap.c 42.5 KB