Messages in this thread Patch in this message | | | From | Naoya Horiguchi <> | Subject | [PATCH 1/7] hugetlb: add missing unlock in avoidcopy path in hugetlb_cow() | Date | Fri, 2 Jul 2010 14:47:20 +0900 |
| |
This patch fixes possible deadlock in hugepage lock_page() by adding missing unlock_page().
libhugetlbfs test will hit this bug when the next patch in this patchset ("hugetlb, HWPOISON: move PG_HWPoison bit check") is applied.
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> --- mm/hugetlb.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
diff --git v2.6.35-rc3-hwpoison/mm/hugetlb.c v2.6.35-rc3-hwpoison/mm/hugetlb.c index abf249d..a26c24a 100644 --- v2.6.35-rc3-hwpoison/mm/hugetlb.c +++ v2.6.35-rc3-hwpoison/mm/hugetlb.c @@ -2323,9 +2323,11 @@ retry_avoidcopy: * and just make the page writable */ avoidcopy = (page_mapcount(old_page) == 1); if (avoidcopy) { - if (!trylock_page(old_page)) + if (!trylock_page(old_page)) { if (PageAnon(old_page)) page_move_anon_rmap(old_page, vma, address); + } else + unlock_page(old_page); set_huge_ptep_writable(vma, address, ptep); return 0; } -- 1.7.1
| |