On Wed, 15 Sep 2010, Andrea Arcangeli wrote: > From: Andrea Arcangeli <aarcange@xxxxxxxxxx> > > The below bug in fork lead to the rmap walk finding the parent huge-pmd twice > instead of just one, because the anon_vma_chain objects of the child vma still > point to the vma->vm_mm of the parent. The below patch fixes it by making the > rmap walk accurate during fork. It's not a big deal normally but it > worth being accurate considering the cost is the same. > > Signed-off-by: Andrea Arcangeli <aarcange@xxxxxxxxxx> Acked-by: Hugh Dickins <hughd@xxxxxxxxxx> > --- > > diff --git a/kernel/fork.c b/kernel/fork.c > --- a/kernel/fork.c > +++ b/kernel/fork.c > @@ -360,10 +360,10 @@ static int dup_mmap(struct mm_struct *mm > if (IS_ERR(pol)) > goto fail_nomem_policy; > vma_set_policy(tmp, pol); > + tmp->vm_mm = mm; > if (anon_vma_fork(tmp, mpnt)) > goto fail_nomem_anon_vma_fork; > tmp->vm_flags &= ~VM_LOCKED; > - tmp->vm_mm = mm; > tmp->vm_next = tmp->vm_prev = NULL; > file = tmp->vm_file; > if (file) { -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>