|
@@ -548,8 +548,7 @@ retry:
|
|
|
goto retry;
|
|
|
}
|
|
|
|
|
|
- if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL))
|
|
|
- migrate_page_add(page, qp->pagelist, flags);
|
|
|
+ migrate_page_add(page, qp->pagelist, flags);
|
|
|
}
|
|
|
pte_unmap_unlock(pte - 1, ptl);
|
|
|
cond_resched();
|
|
@@ -625,7 +624,7 @@ static int queue_pages_test_walk(unsigned long start, unsigned long end,
|
|
|
unsigned long endvma = vma->vm_end;
|
|
|
unsigned long flags = qp->flags;
|
|
|
|
|
|
- if (vma->vm_flags & VM_PFNMAP)
|
|
|
+ if (!vma_migratable(vma))
|
|
|
return 1;
|
|
|
|
|
|
if (endvma > end)
|
|
@@ -644,16 +643,13 @@ static int queue_pages_test_walk(unsigned long start, unsigned long end,
|
|
|
|
|
|
if (flags & MPOL_MF_LAZY) {
|
|
|
/* Similar to task_numa_work, skip inaccessible VMAs */
|
|
|
- if (vma_migratable(vma) &&
|
|
|
- vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))
|
|
|
+ if (vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))
|
|
|
change_prot_numa(vma, start, endvma);
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
- if ((flags & MPOL_MF_STRICT) ||
|
|
|
- ((flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) &&
|
|
|
- vma_migratable(vma)))
|
|
|
- /* queue pages from current vma */
|
|
|
+ /* queue pages from current vma */
|
|
|
+ if (flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL))
|
|
|
return 0;
|
|
|
return 1;
|
|
|
}
|