From: Hugh Dickins 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 Signed-off-by: Andrew Morton --- kernel/futex.c | 15 --------------- 1 files changed, 15 deletions(-) diff -puN kernel/futex.c~mm-unbloat-get_futex_key kernel/futex.c --- devel/kernel/futex.c~mm-unbloat-get_futex_key 2005-11-22 20:25:42.000000000 -0800 +++ devel-akpm/kernel/futex.c 2005-11-22 20:25:42.000000000 -0800 @@ -201,21 +201,6 @@ static int get_futex_key(unsigned long u * from swap. But that's a lot of code to duplicate here * for a rare case, so we simply fetch the page. */ - - /* - * Do a quick atomic lookup first - this is the fastpath. - */ - page = follow_page(mm, uaddr, FOLL_TOUCH|FOLL_GET); - if (likely(page != NULL)) { - key->shared.pgoff = - page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT); - put_page(page); - return 0; - } - - /* - * Do it the general way. - */ err = get_user_pages(current, mm, uaddr, 1, 0, 0, &page, NULL); if (err >= 0) { key->shared.pgoff = _