diff options
| -rw-r--r-- | mm/madvise.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mm/madvise.c b/mm/madvise.c index b9ce574827c8..36d6ea2b6340 100644 --- a/mm/madvise.c +++ b/mm/madvise.c | |||
| @@ -112,6 +112,14 @@ static long madvise_willneed(struct vm_area_struct * vma, | |||
| 112 | if (!file) | 112 | if (!file) |
| 113 | return -EBADF; | 113 | return -EBADF; |
| 114 | 114 | ||
| 115 | /* | ||
| 116 | * Page cache readahead assumes page cache pages are order-0 which | ||
| 117 | * is not the case for hugetlbfs. Do not give a bad return value | ||
| 118 | * but ignore the advice. | ||
| 119 | */ | ||
| 120 | if (vma->vm_flags & VM_HUGETLB) | ||
| 121 | return 0; | ||
| 122 | |||
| 115 | if (file->f_mapping->a_ops->get_xip_mem) { | 123 | if (file->f_mapping->a_ops->get_xip_mem) { |
| 116 | /* no bad return value, but ignore advice */ | 124 | /* no bad return value, but ignore advice */ |
| 117 | return 0; | 125 | return 0; |
