X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Ffadvise.c;h=343cfdfebd9ea0931b9ac6c4e91ed61ba0262730;hb=9bf8a943ad79a3bb15597fe0275f8b1cf26e2010;hp=0df4c899e979ec1101cb629a660fc04b31e1095e;hpb=6bfe5c9d6f4dcaa998f67e691359cf7b1c4b443d;p=pandora-kernel.git diff --git a/mm/fadvise.c b/mm/fadvise.c index 0df4c899e979..343cfdfebd9e 100644 --- a/mm/fadvise.c +++ b/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_mem) { + 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;