summaryrefslogtreecommitdiffstats
path: root/kernel/futex.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-10-30 07:58:18 +0100
committerJeff Garzik <jgarzik@pobox.com>2005-10-30 07:58:18 +0100
commitf0612bbc41f65f5a684f69d714a1a17a6f0f40c5 (patch)
tree8c070070bb355843cfa4635643e9da7c2c4cd44a /kernel/futex.c
parentMerge branch 'master' (diff)
parentMerge branch 'master' (diff)
downloadlinux-f0612bbc41f65f5a684f69d714a1a17a6f0f40c5.tar.xz
linux-f0612bbc41f65f5a684f69d714a1a17a6f0f40c5.zip
Merge branch 'upstream'
Diffstat (limited to 'kernel/futex.c')
-rw-r--r--kernel/futex.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/kernel/futex.c b/kernel/futex.c
index ca05fe6a70b2..3b4d5ad44cc6 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -205,15 +205,13 @@ static int get_futex_key(unsigned long uaddr, union futex_key *key)
/*
* Do a quick atomic lookup first - this is the fastpath.
*/
- spin_lock(&current->mm->page_table_lock);
- page = follow_page(mm, uaddr, 0);
+ page = follow_page(mm, uaddr, FOLL_TOUCH|FOLL_GET);
if (likely(page != NULL)) {
key->shared.pgoff =
page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
- spin_unlock(&current->mm->page_table_lock);
+ put_page(page);
return 0;
}
- spin_unlock(&current->mm->page_table_lock);
/*
* Do it the general way.