diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 817ae73d40bd669c4d891536c5619191c5e6b61e..0301e9bfe1ae2fd84560b1dd24a1077262b3149d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4858,8 +4858,12 @@ static vm_fault_t hugetlb_no_page(struct mm_struct *mm, size_t page_size = huge_page_size(h); ret = read_actual_file(page, vma, &off, page_size); - if (ret) + if (ret) { + put_page(page); + pr_err_ratelimited("enhanced hugetlb mmap: read file failed\n"); + ret = vmf_error(ret); goto out; + } } #endif __SetPageUptodate(page);