diff --git a/[refs] b/[refs] index 0ac516f4b72c..fdfb98d8f87f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4a6018f7f4f1075c1a5403b5ec0ee7262187b86c +refs/heads/master: ab941e0fff3947b6dcc9c578d918d1bba54a6874 diff --git a/trunk/mm/rmap.c b/trunk/mm/rmap.c index 07fc94758799..0feeef860a8f 100644 --- a/trunk/mm/rmap.c +++ b/trunk/mm/rmap.c @@ -336,14 +336,13 @@ vma_address(struct page *page, struct vm_area_struct *vma) /* * At what user virtual address is page expected in vma? - * checking that the page matches the vma. + * Caller should check the page is actually part of the vma. */ unsigned long page_address_in_vma(struct page *page, struct vm_area_struct *vma) { - if (PageAnon(page)) { - if (vma->anon_vma != page_anon_vma(page)) - return -EFAULT; - } else if (page->mapping && !(vma->vm_flags & VM_NONLINEAR)) { + if (PageAnon(page)) + ; + else if (page->mapping && !(vma->vm_flags & VM_NONLINEAR)) { if (!vma->vm_file || vma->vm_file->f_mapping != page->mapping) return -EFAULT;