From: Andrew Morton Cc: Paul Jackson Cc: Christoph Lameter Signed-off-by: Andrew Morton --- mm/mempolicy.c | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-) diff -puN mm/mempolicy.c~direct-migration-v9-upgrade-mpol_mf_move-and-sys_migrate_pages-fixes mm/mempolicy.c --- 25/mm/mempolicy.c~direct-migration-v9-upgrade-mpol_mf_move-and-sys_migrate_pages-fixes Tue Jan 17 16:24:06 2006 +++ 25-akpm/mm/mempolicy.c Tue Jan 17 16:24:06 2006 @@ -553,7 +553,7 @@ static void migrate_page_add(struct vm_a * Return the number of pages not migrated or error code */ static int migrate_pages_to(struct list_head *pagelist, - struct vm_area_struct *vma, int dest) + struct vm_area_struct *vma, int dest) { LIST_HEAD(newlist); LIST_HEAD(moved); @@ -567,8 +567,7 @@ redo: nr_pages = 0; list_for_each(p, pagelist) { if (vma) - page = alloc_page_vma(GFP_HIGHUSER, vma, - vma->vm_start); + page = alloc_page_vma(GFP_HIGHUSER, vma, vma->vm_start); else page = alloc_pages_node(dest, GFP_HIGHUSER, 0); @@ -619,16 +618,12 @@ int migrate_to_node(struct mm_struct *mm node_set(source, nmask); check_range(mm, mm->mmap->vm_start, TASK_SIZE, &nmask, - flags | MPOL_MF_DISCONTIG_OK, - &pagelist); + flags | MPOL_MF_DISCONTIG_OK, &pagelist); if (!list_empty(&pagelist)) { - err = migrate_pages_to(&pagelist, NULL, dest); - if (!list_empty(&pagelist)) putback_lru_pages(&pagelist); - } return err; } @@ -649,7 +644,8 @@ int do_migrate_pages(struct mm_struct *m down_read(&mm->mmap_sem); -/* Find a 'source' bit set in 'tmp' whose corresponding 'dest' +/* + * Find a 'source' bit set in 'tmp' whose corresponding 'dest' * bit in 'to' is not also set in 'tmp'. Clear the found 'source' * bit in 'tmp', and return that pair for migration. * The pair of nodemasks 'to' and 'from' define the map. @@ -686,7 +682,6 @@ int do_migrate_pages(struct mm_struct *m int dest = 0; for_each_node_mask(s, tmp) { - d = node_remap(s, *from_nodes, *to_nodes); if (s == d) continue; _