diff --git a/[refs] b/[refs] index bcfd4658bcf0..bda07c7154ec 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 788c7df451467df71638dd79a2d63d78c6e13b9c +refs/heads/master: d26ed650d9947a786bbda8de9cd914dbeebc1a68 diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index 98bcb90d5957..50da9511aa77 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -1311,8 +1311,10 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, while (!(page = follow_page(vma, start, foll_flags))) { int ret; - /* FOLL_WRITE matches FAULT_FLAG_WRITE! */ - ret = handle_mm_fault(mm, vma, start, foll_flags & FOLL_WRITE); + ret = handle_mm_fault(mm, vma, start, + (foll_flags & FOLL_WRITE) ? + FAULT_FLAG_WRITE : 0); + if (ret & VM_FAULT_ERROR) { if (ret & VM_FAULT_OOM) return i ? i : -ENOMEM;