diff options
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r-- | mm/vmscan.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index 5bd0dcb..692bec9 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -627,6 +627,8 @@ void putback_lru_page(struct page *page) int was_unevictable = PageUnevictable(page); VM_BUG_ON(PageLRU(page)); + if (active) + SetPageWasActive(page); redo: ClearPageUnevictable(page); @@ -1284,6 +1286,7 @@ static unsigned long clear_active_flags(struct list_head *page_list, if (PageActive(page)) { lru += LRU_ACTIVE; ClearPageActive(page); + SetPageWasActive(page); nr_active += numpages; } if (count) @@ -1705,6 +1708,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone, } ClearPageActive(page); /* we are de-activating */ + SetPageWasActive(page); list_add(&page->lru, &l_inactive); } |