diff --git a/mm/hugetlb.c b/mm/hugetlb.c index a80832487981..c5c708c83af0 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4270,7 +4270,8 @@ long follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, break; } if (ret & VM_FAULT_RETRY) { - if (nonblocking) + if (nonblocking && + !(fault_flags & FAULT_FLAG_RETRY_NOWAIT)) *nonblocking = 0; *nr_pages = 0; /*