aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 3886b0bd7869..f51a33e8ed89 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -633,13 +633,14 @@ redo:
633 lru = LRU_UNEVICTABLE; 633 lru = LRU_UNEVICTABLE;
634 add_page_to_unevictable_list(page); 634 add_page_to_unevictable_list(page);
635 /* 635 /*
636 * When racing with an mlock clearing (page is 636 * When racing with an mlock or AS_UNEVICTABLE clearing
637 * unlocked), make sure that if the other thread does 637 * (page is unlocked) make sure that if the other thread
638 * not observe our setting of PG_lru and fails 638 * does not observe our setting of PG_lru and fails
639 * isolation, we see PG_mlocked cleared below and move 639 * isolation/check_move_unevictable_page,
640 * we see PG_mlocked/AS_UNEVICTABLE cleared below and move
640 * the page back to the evictable list. 641 * the page back to the evictable list.
641 * 642 *
642 * The other side is TestClearPageMlocked(). 643 * The other side is TestClearPageMlocked() or shmem_lock().
643 */ 644 */
644 smp_mb(); 645 smp_mb();
645 } 646 }