mm: mbind: add hugepage migration code to mbind()
[linux-2.6-block.git] / mm / mempolicy.c
index 4626be621e747b1df304d62b927a7ec0f0ccc020..c7c359213ae1ff2527e6167d15a91241068931d4 100644 (file)
@@ -1192,6 +1192,8 @@ static struct page *new_vma_page(struct page *page, unsigned long private, int *
                vma = vma->vm_next;
        }
 
+       if (PageHuge(page))
+               return alloc_huge_page_noerr(vma, address, 1);
        /*
         * if !vma, alloc_page_vma() will use task or system default policy
         */
@@ -1302,7 +1304,7 @@ static long do_mbind(unsigned long start, unsigned long len,
                                        (unsigned long)vma,
                                        MIGRATE_SYNC, MR_MEMPOLICY_MBIND);
                        if (nr_failed)
-                               putback_lru_pages(&pagelist);
+                               putback_movable_pages(&pagelist);
                }
 
                if (nr_failed && (flags & MPOL_MF_STRICT))