Ignore madvise(MADV_WILLNEED) for hugetlbfs-backed regions
[linux-2.6.git] / mm / madvise.c
index b9ce574..36d6ea2 100644 (file)
@@ -112,6 +112,14 @@ static long madvise_willneed(struct vm_area_struct * vma,
        if (!file)
                return -EBADF;
 
+       /*
+        * Page cache readahead assumes page cache pages are order-0 which
+        * is not the case for hugetlbfs. Do not give a bad return value
+        * but ignore the advice.
+        */
+       if (vma->vm_flags & VM_HUGETLB)
+               return 0;
+
        if (file->f_mapping->a_ops->get_xip_mem) {
                /* no bad return value, but ignore advice */
                return 0;