From 514ab97cfbe11895182ec68e0f96e7a592e65ba3 Mon Sep 17 00:00:00 2001 From: KOSAKI Motohiro Date: Tue, 31 Jul 2012 16:42:50 -0700 Subject: [PATCH] --- yaml --- r: 320788 b: refs/heads/master c: 3d3727cdb07ff17ddc3c551ef8d03d37b60a0372 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/fadvise.c | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index 634ea775c51a..d5ddc61f6ce0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c59e26104e3e0e952cd7d63e79cd71ee5a9ec25a +refs/heads/master: 3d3727cdb07ff17ddc3c551ef8d03d37b60a0372 diff --git a/trunk/mm/fadvise.c b/trunk/mm/fadvise.c index 469491e0af79..9b75a045dbf4 100644 --- a/trunk/mm/fadvise.c +++ b/trunk/mm/fadvise.c @@ -93,11 +93,6 @@ SYSCALL_DEFINE(fadvise64_64)(int fd, loff_t offset, loff_t len, int advice) spin_unlock(&file->f_lock); break; case POSIX_FADV_WILLNEED: - if (!mapping->a_ops->readpage) { - ret = -EINVAL; - break; - } - /* First and last PARTIAL page! */ start_index = offset >> PAGE_CACHE_SHIFT; end_index = endbyte >> PAGE_CACHE_SHIFT; @@ -106,12 +101,13 @@ SYSCALL_DEFINE(fadvise64_64)(int fd, loff_t offset, loff_t len, int advice) nrpages = end_index - start_index + 1; if (!nrpages) nrpages = ~0UL; - - ret = force_page_cache_readahead(mapping, file, - start_index, - nrpages); - if (ret > 0) - ret = 0; + + /* + * Ignore return value because fadvise() shall return + * success even if filesystem can't retrieve a hint, + */ + force_page_cache_readahead(mapping, file, start_index, + nrpages); break; case POSIX_FADV_NOREUSE: break;