Merge tag 'media/v4.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[linux-2.6-microblaze.git] / mm / swap.c
index aabf2e9..c4910f1 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -209,9 +209,10 @@ static void pagevec_move_tail_fn(struct page *page, struct lruvec *lruvec,
 {
        int *pgmoved = arg;
 
-       if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
-               enum lru_list lru = page_lru_base_type(page);
-               list_move_tail(&page->lru, &lruvec->lists[lru]);
+       if (PageLRU(page) && !PageUnevictable(page)) {
+               del_page_from_lru_list(page, lruvec, page_lru(page));
+               ClearPageActive(page);
+               add_page_to_lru_list_tail(page, lruvec, page_lru(page));
                (*pgmoved)++;
        }
 }
@@ -235,7 +236,7 @@ static void pagevec_move_tail(struct pagevec *pvec)
  */
 void rotate_reclaimable_page(struct page *page)
 {
-       if (!PageLocked(page) && !PageDirty(page) && !PageActive(page) &&
+       if (!PageLocked(page) && !PageDirty(page) &&
            !PageUnevictable(page) && PageLRU(page)) {
                struct pagevec *pvec;
                unsigned long flags;