From: Oleg Nesterov get_user_pages() must not return the error when i != 0. When pages != NULL we have i get_page()'ed pages. Signed-off-by: Oleg Nesterov Acked-by: Nick Piggin Signed-off-by: Andrew Morton --- mm/memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN mm/memory.c~get_user_pages-fix-possible-page-leak-on-oom mm/memory.c --- a/mm/memory.c~get_user_pages-fix-possible-page-leak-on-oom +++ a/mm/memory.c @@ -1151,7 +1151,7 @@ int get_user_pages(struct task_struct *t * be processed until returning to user space. */ if (unlikely(test_tsk_thread_flag(tsk, TIF_MEMDIE))) - return -ENOMEM; + return i ? i : -ENOMEM; if (write) foll_flags |= FOLL_WRITE; _