diff --git a/mm/hugetlb.c b/mm/hugetlb.c index c4a3558589ab15de3ac9abb135ee499d17544142..85855240933d7cf195ce1548faa75d8120c21478 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2738,7 +2738,8 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, unlock_page(pagecache_page); put_page(pagecache_page); } - unlock_page(page); + if (page != pagecache_page) + unlock_page(page); out_mutex: mutex_unlock(&hugetlb_instantiation_mutex);