hugetlb, rmap: fix confusing page locking in hugetlb_cow()
authorNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Fri, 10 Sep 2010 04:23:04 +0000 (13:23 +0900)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 24 Sep 2010 00:29:18 +0000 (17:29 -0700)
commit56c9cfb13c9b6516017eea4e8cbe22ea02e07ee6
tree1b09c9350d8f48d81514f274a3a1933dc9f1a2ef
parentcd67f0d2a9a6b5b9f79f4343dc8805757d9ebae2
hugetlb, rmap: fix confusing page locking in hugetlb_cow()

The "if (!trylock_page)" block in the avoidcopy path of hugetlb_cow()
looks confusing and is buggy.  Originally this trylock_page() was
intended to make sure that old_page is locked even when old_page !=
pagecache_page, because then only pagecache_page is locked.

This patch fixes it by moving page locking into hugetlb_fault().

Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Acked-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/hugetlb.c