|
@@ -630,9 +630,14 @@ static unsigned long shrink_page_list(struct list_head *page_list,
|
|
|
|
|
|
referenced = page_referenced(page, 1,
|
|
referenced = page_referenced(page, 1,
|
|
sc->mem_cgroup, &vm_flags);
|
|
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 &&
|
|
if (sc->order <= PAGE_ALLOC_COSTLY_ORDER &&
|
|
- referenced && page_mapping_inuse(page))
|
|
|
|
|
|
+ referenced && page_mapping_inuse(page)
|
|
|
|
+ && !(vm_flags & VM_LOCKED))
|
|
goto activate_locked;
|
|
goto activate_locked;
|
|
|
|
|
|
/*
|
|
/*
|