diff --git a/[refs] b/[refs] index 4a2048130664..7fe4792199eb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4e6a510a74145585f4111d60d1b5fd450d795dd8 +refs/heads/master: aa3f18b3391ac305baa01faead3fdf9147daf54b diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index 61ca0097c834..8277f93148b5 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -477,6 +477,12 @@ static int shrink_list(struct list_head *page_list, struct scan_control *sc) * processes. Try to unmap it here. */ if (page_mapped(page) && mapping) { + /* + * No unmapping if we do not swap + */ + if (!sc->may_swap) + goto keep_locked; + switch (try_to_unmap(page)) { case SWAP_FAIL: goto activate_locked;