From 7e720404a1445952f3da35a0b7875177c1c4505f Mon Sep 17 00:00:00 2001 From: Carsten Otte Date: Thu, 23 Jun 2005 22:05:29 -0700 Subject: [PATCH] --- yaml --- r: 3153 b: refs/heads/master c: fe77ba6f4f97690baa4c756611a07f3cc033f6ae h: refs/heads/master i: 3151: c74d99869eadb8e9797977bfd3e222a9f9a82767 v: v3 --- [refs] | 2 +- trunk/mm/fadvise.c | 4 ++++ trunk/mm/madvise.c | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 94de772a2213..ae62c3d8e1c9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eb6fe0c388e43b02e261f0fdee60e42f6298d7f7 +refs/heads/master: fe77ba6f4f97690baa4c756611a07f3cc033f6ae diff --git a/trunk/mm/fadvise.c b/trunk/mm/fadvise.c index 57264d74b8bf..5f19e87bc5af 100644 --- a/trunk/mm/fadvise.c +++ b/trunk/mm/fadvise.c @@ -43,6 +43,10 @@ asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice) goto out; } + if (mapping->a_ops->get_xip_page) + /* no bad return value, but ignore advice */ + goto out; + /* Careful about overflows. Len == 0 means "as much as possible" */ endbyte = offset + len; if (!len || endbyte < len) diff --git a/trunk/mm/madvise.c b/trunk/mm/madvise.c index 54a5d3bc55d5..73180a22877e 100644 --- a/trunk/mm/madvise.c +++ b/trunk/mm/madvise.c @@ -86,6 +86,11 @@ static long madvise_willneed(struct vm_area_struct * vma, if (!file) return -EBADF; + if (file->f_mapping->a_ops->get_xip_page) { + /* no bad return value, but ignore advice */ + return 0; + } + *prev = vma; start = ((start - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff; if (end > vma->vm_end)