|
@@ -1072,7 +1072,8 @@ static int try_to_unmap_file(struct page *page, int unlock, int migration)
|
|
|
spin_lock(&mapping->i_mmap_lock);
|
|
|
vma_prio_tree_foreach(vma, &iter, &mapping->i_mmap, pgoff, pgoff) {
|
|
|
if (MLOCK_PAGES && unlikely(unlock)) {
|
|
|
- if (!(vma->vm_flags & VM_LOCKED))
|
|
|
+ if (!((vma->vm_flags & VM_LOCKED) &&
|
|
|
+ page_mapped_in_vma(page, vma)))
|
|
|
continue; /* must visit all vmas */
|
|
|
ret = SWAP_MLOCK;
|
|
|
} else {
|