diff options
Diffstat (limited to 'mm/rmap.c')
-rw-r--r-- | mm/rmap.c | 12 |
1 files changed, 0 insertions, 12 deletions
@@ -329,18 +329,6 @@ vma_address(struct page *page, struct vm_area_struct *vma) | |||
329 | /* page should be within @vma mapping range */ | 329 | /* page should be within @vma mapping range */ |
330 | return -EFAULT; | 330 | return -EFAULT; |
331 | } | 331 | } |
332 | if (unlikely(vma->vm_flags & VM_LOCK_RMAP)) { | ||
333 | /* | ||
334 | * This VMA is being unlinked or is not yet linked into the | ||
335 | * VMA tree. Do not try to follow this rmap. This race | ||
336 | * condition can result in page_referenced() ignoring a | ||
337 | * reference or in try_to_unmap() failing to unmap a page. | ||
338 | * The VMA cannot be freed under us because we hold the | ||
339 | * anon_vma->lock, which the munmap code takes while | ||
340 | * unlinking the anon_vmas from the VMA. | ||
341 | */ | ||
342 | return -EFAULT; | ||
343 | } | ||
344 | return address; | 332 | return address; |
345 | } | 333 | } |
346 | 334 | ||