From babe53b11312e1aa8dc135bcbdb40043aada10fe Mon Sep 17 00:00:00 2001 From: Masatake YAMATO Date: Mon, 4 Feb 2008 22:29:31 -0800 Subject: [PATCH] --- yaml --- r: 83099 b: refs/heads/master c: b5beb1caff4ce063e6e2dc13f23b80eeef4e9782 h: refs/heads/master i: 83097: 2166e09be1938bcb09c866e6d2305365ee6dd0fd 83095: b64a2116c15a107399fe02f4a1fec6996fcfbd00 v: v3 --- [refs] | 2 +- trunk/mm/fadvise.c | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 378629a52fcc..5c96f39982a5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e6f3602d2c58815775b2a293cec6650622236169 +refs/heads/master: b5beb1caff4ce063e6e2dc13f23b80eeef4e9782 diff --git a/trunk/mm/fadvise.c b/trunk/mm/fadvise.c index 0df4c899e979..3c0f1e99f5e4 100644 --- a/trunk/mm/fadvise.c +++ b/trunk/mm/fadvise.c @@ -49,9 +49,21 @@ 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 */ + if (mapping->a_ops->get_xip_page) { + switch (advice) { + case POSIX_FADV_NORMAL: + case POSIX_FADV_RANDOM: + case POSIX_FADV_SEQUENTIAL: + case POSIX_FADV_WILLNEED: + case POSIX_FADV_NOREUSE: + case POSIX_FADV_DONTNEED: + /* no bad return value, but ignore advice */ + break; + default: + ret = -EINVAL; + } goto out; + } /* Careful about overflows. Len == 0 means "as much as possible" */ endbyte = offset + len;