From: Chen Gang <gang.chen@asianux.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>, Mel Gorman <mgorman@suse.de>,
rientjes@google.com, sasha.levin@oracle.com,
linux@rasmusvillemoes.dk, kosaki.motohiro@jp.fujitsu.com,
Wu Fengguang <fengguang.wu@intel.com>,
lczerner@redhat.com, linux-mm@kvack.org
Subject: [PATCH v3] mm: readahead: check return value which force_page_cache_readahead() returns
Date: Mon, 04 Nov 2013 13:31:39 +0800 [thread overview]
Message-ID: <5277313B.8060306@asianux.com> (raw)
In-Reply-To: <525FB469.4000400@asianux.com>
force_page_cache_readahead() may fail, so the callers who want to know
about it need check the return value.
force_page_cache_readahead() need not return actual read length, since
no callers care about it, and which may lead callers misunderstanding:
treat non-zero as failure.
And now, 2 callers need not check the return value:
- in fadvise64_64(), it contents the related comment near above.
(return success even if filesystem can't retrieve a hint).
- page_cache_sync_readahead() itself need not return value
(only can not improve performance when it fails).
Signed-off-by: Chen Gang <gang.chen@asianux.com>
---
mm/madvise.c | 4 ++--
mm/readahead.c | 11 +++--------
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/mm/madvise.c b/mm/madvise.c
index 539eeb9..dee8d46 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -247,8 +247,8 @@ static long madvise_willneed(struct vm_area_struct *vma,
end = vma->vm_end;
end = ((end - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff;
- force_page_cache_readahead(file->f_mapping, file, start, end - start);
- return 0;
+ return force_page_cache_readahead(file->f_mapping, file,
+ start, end - start);
}
/*
diff --git a/mm/readahead.c b/mm/readahead.c
index 7cdbb44..b186d93 100644
--- a/mm/readahead.c
+++ b/mm/readahead.c
@@ -211,8 +211,6 @@ out:
int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
pgoff_t offset, unsigned long nr_to_read)
{
- int ret = 0;
-
if (unlikely(!mapping->a_ops->readpage && !mapping->a_ops->readpages))
return -EINVAL;
@@ -227,14 +225,12 @@ int force_page_cache_readahead(struct address_space *mapping, struct file *filp,
err = __do_page_cache_readahead(mapping, filp,
offset, this_chunk, 0);
if (err < 0) {
- ret = err;
- break;
+ return err;
}
- ret += err;
offset += this_chunk;
nr_to_read -= this_chunk;
}
- return ret;
+ return 0;
}
/*
@@ -576,8 +572,7 @@ do_readahead(struct address_space *mapping, struct file *filp,
if (!mapping || !mapping->a_ops)
return -EINVAL;
- force_page_cache_readahead(mapping, filp, index, nr);
- return 0;
+ return force_page_cache_readahead(mapping, filp, index, nr);
}
SYSCALL_DEFINE3(readahead, int, fd, loff_t, offset, size_t, count)
--
1.7.7.6
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
prev parent reply other threads:[~2013-11-04 5:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-20 3:31 [PATCH] mm: readahead: return the value which force_page_cache_readahead() returns Chen Gang
2013-08-20 23:16 ` Andrew Morton
2013-08-21 2:29 ` Chen Gang
2013-08-21 2:41 ` [PATCH v2] m: " Chen Gang
2013-09-03 5:27 ` Chen Gang
2013-09-17 22:56 ` Andrew Morton
2013-09-18 1:59 ` Chen Gang
2013-10-15 8:06 ` [PATCH] mm/readahead.c: need always return 0 when system call readahead() succeeds Chen Gang
2013-10-15 12:12 ` [PATCH] mm/madvise.c: return 0 instead of read bytes after force_page_cache_readahead() succeeds Chen Gang
2013-10-16 23:06 ` [PATCH] mm/readahead.c: need always return 0 when system call readahead() succeeds David Rientjes
2013-10-17 0:57 ` Chen Gang
2013-10-17 1:17 ` David Rientjes
2013-10-17 1:32 ` Chen Gang
2013-10-17 2:21 ` David Rientjes
2013-10-17 2:37 ` Chen Gang
2013-10-17 2:40 ` Chen Gang
2013-10-15 8:20 ` [PATCH v2] m: readahead: return the value which force_page_cache_readahead() returns Chen Gang
2013-10-17 9:56 ` Chen Gang
2013-11-04 5:31 ` Chen Gang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5277313B.8060306@asianux.com \
--to=gang.chen@asianux.com \
--cc=akpm@linux-foundation.org \
--cc=fengguang.wu@intel.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=lczerner@redhat.com \
--cc=linux-mm@kvack.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mgorman@suse.de \
--cc=rientjes@google.com \
--cc=sasha.levin@oracle.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.