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 | |
| 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')
| -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 = |
