On Thu, 2 Dec 2010 16:16:51 -0800 Michel Lespinasse <walken@xxxxxxxxxx> wrote: > __get_user_pages gets a new 'nonblocking' parameter to signal that the > caller is prepared to re-acquire mmap_sem and retry the operation if needed. > This is used to split off long operations if they are going to block on > a disk transfer, or when we detect contention on the mmap_sem. Doesn't apply to linux-next because the KVM guys snuck in a new FAULT_FLAG_MINOR (who knew?). With a bonus, undocumented, exported-to-modules get_user_pages_noio(). I liked your code better so I munged __get_user_pages() together thusly: cond_resched(); while (!(page = follow_page(vma, start, foll_flags))) { int ret; unsigned int fault_flags = 0; if (foll_flags & FOLL_WRITE) fault_flags |= FAULT_FLAG_WRITE; if (nonblocking) fault_flags |= FAULT_FLAG_ALLOW_RETRY; if (foll_flags & FOLL_MINOR) fault_flags |= FAULT_FLAG_MINOR; ret = handle_mm_fault(mm, vma, start, fault_flags); please review the end result.. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>