summaryrefslogtreecommitdiff
path: root/mm/vmscan.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2009-09-10 00:02:02 +0200
committerRafael J. Wysocki <rjw@sisk.pl>2009-09-10 00:02:02 +0200
commitbf992fa2bc1ad1bb2aeb0bdfadb43f236b9297fd (patch)
treed67f525c76b66956ba7ca0d40bc0fcda0e414700 /mm/vmscan.c
parent9d7302299ee96ca954fe4ab8ca640333b6e19ad0 (diff)
parent7135a71b19be1faf48b7148d77844d03bc0717d6 (diff)
downloadlwn-bf992fa2bc1ad1bb2aeb0bdfadb43f236b9297fd.tar.gz
lwn-bf992fa2bc1ad1bb2aeb0bdfadb43f236b9297fd.zip
Merge branch 'master' into for-linus
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index dea7abd31098..94e86dd6954c 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -630,9 +630,14 @@ static unsigned long shrink_page_list(struct list_head *page_list,
referenced = page_referenced(page, 1,
sc->mem_cgroup, &vm_flags);
- /* In active use or really unfreeable? Activate it. */
+ /*
+ * In active use or really unfreeable? Activate it.
+ * If page which have PG_mlocked lost isoltation race,
+ * try_to_unmap moves it to unevictable list
+ */
if (sc->order <= PAGE_ALLOC_COSTLY_ORDER &&
- referenced && page_mapping_inuse(page))
+ referenced && page_mapping_inuse(page)
+ && !(vm_flags & VM_LOCKED))
goto activate_locked;
/*