aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@engr.sgi.com>2006-01-12 04:05:20 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-12 12:08:48 -0500
commitf4598c8b3678abd65be3be00ed3d046375a4777e (patch)
tree497aba8cdeb00b1fe8d227a9b839c1ce8980f3a2
parent1bc691d357c646700b9523d2aeca02847d3fb3f4 (diff)
[PATCH] migration: make sure there is no attempt to migrate reserved pages.
This ensures that reserved pages are not migrated. Reserved pages currently cause the WARN_ON to trigger in migrate_page_add() Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--mm/mempolicy.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 1850d0aef4ac..b62cab575a84 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -208,6 +208,8 @@ static int check_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
208 page = vm_normal_page(vma, addr, *pte); 208 page = vm_normal_page(vma, addr, *pte);
209 if (!page) 209 if (!page)
210 continue; 210 continue;
211 if (PageReserved(page))
212 continue;
211 nid = page_to_nid(page); 213 nid = page_to_nid(page);
212 if (node_isset(nid, *nodes) == !!(flags & MPOL_MF_INVERT)) 214 if (node_isset(nid, *nodes) == !!(flags & MPOL_MF_INVERT))
213 continue; 215 continue;
@@ -290,7 +292,7 @@ static inline int check_pgd_range(struct vm_area_struct *vma,
290static inline int vma_migratable(struct vm_area_struct *vma) 292static inline int vma_migratable(struct vm_area_struct *vma)
291{ 293{
292 if (vma->vm_flags & ( 294 if (vma->vm_flags & (
293 VM_LOCKED|VM_IO|VM_HUGETLB|VM_PFNMAP)) 295 VM_LOCKED|VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED))
294 return 0; 296 return 0;
295 return 1; 297 return 1;
296} 298}