diff options
author | Hugh Dickins <hugh@veritas.com> | 2005-11-23 16:37:38 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-23 19:08:38 -0500 |
commit | cc3327e7dfc16a9a3e164075234c869867a59e45 (patch) | |
tree | d120c13540a7fa4769c0bf53eb12628a76366631 /kernel/futex.c | |
parent | 7b6ac9dffe6f4dd8776908b234ac1410ed15f112 (diff) |
[PATCH] mm: unbloat get_futex_key
The follow_page changes in get_futex_key have left it with two almost
identical blocks, when handling the rare case of a futex in a nonlinear vma.
get_user_pages will itself do that follow_page, and its additional
find_extend_vma is hardly any overhead since the vma is already cached. Let's
just delete the follow_page block and let get_user_pages do it.
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/futex.c')
-rw-r--r-- | kernel/futex.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index aca8d10704f6..5872e3507f35 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -201,21 +201,6 @@ static int get_futex_key(unsigned long uaddr, union futex_key *key) | |||
201 | * from swap. But that's a lot of code to duplicate here | 201 | * from swap. But that's a lot of code to duplicate here |
202 | * for a rare case, so we simply fetch the page. | 202 | * for a rare case, so we simply fetch the page. |
203 | */ | 203 | */ |
204 | |||
205 | /* | ||
206 | * Do a quick atomic lookup first - this is the fastpath. | ||
207 | */ | ||
208 | page = follow_page(mm, uaddr, FOLL_TOUCH|FOLL_GET); | ||
209 | if (likely(page != NULL)) { | ||
210 | key->shared.pgoff = | ||
211 | page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT); | ||
212 | put_page(page); | ||
213 | return 0; | ||
214 | } | ||
215 | |||
216 | /* | ||
217 | * Do it the general way. | ||
218 | */ | ||
219 | err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL); | 204 | err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL); |
220 | if (err >= 0) { | 205 | if (err >= 0) { |
221 | key->shared.pgoff = | 206 | key->shared.pgoff = |