diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 309fb8c969af70ceca775d1c78fdb44408048a6d..10e83672bfbec2332702f258524dfa3d2cb61dfb 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -4269,7 +4269,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; /*