|
@@ -652,7 +652,7 @@ EXPORT_SYMBOL(__pagevec_release);
|
|
|
void lru_add_page_tail(struct zone* zone,
|
|
void lru_add_page_tail(struct zone* zone,
|
|
|
struct page *page, struct page *page_tail)
|
|
struct page *page, struct page *page_tail)
|
|
|
{
|
|
{
|
|
|
- int active;
|
|
|
|
|
|
|
+ int uninitialized_var(active);
|
|
|
enum lru_list lru;
|
|
enum lru_list lru;
|
|
|
const int file = 0;
|
|
const int file = 0;
|
|
|
|
|
|
|
@@ -672,7 +672,6 @@ void lru_add_page_tail(struct zone* zone,
|
|
|
active = 0;
|
|
active = 0;
|
|
|
lru = LRU_INACTIVE_ANON;
|
|
lru = LRU_INACTIVE_ANON;
|
|
|
}
|
|
}
|
|
|
- update_page_reclaim_stat(zone, page_tail, file, active);
|
|
|
|
|
} else {
|
|
} else {
|
|
|
SetPageUnevictable(page_tail);
|
|
SetPageUnevictable(page_tail);
|
|
|
lru = LRU_UNEVICTABLE;
|
|
lru = LRU_UNEVICTABLE;
|
|
@@ -693,6 +692,9 @@ void lru_add_page_tail(struct zone* zone,
|
|
|
list_head = page_tail->lru.prev;
|
|
list_head = page_tail->lru.prev;
|
|
|
list_move_tail(&page_tail->lru, list_head);
|
|
list_move_tail(&page_tail->lru, list_head);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if (!PageUnevictable(page))
|
|
|
|
|
+ update_page_reclaim_stat(zone, page_tail, file, active);
|
|
|
}
|
|
}
|
|
|
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
|
|
#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
|
|
|
|
|
|
|
@@ -710,8 +712,8 @@ static void __pagevec_lru_add_fn(struct page *page, void *arg)
|
|
|
SetPageLRU(page);
|
|
SetPageLRU(page);
|
|
|
if (active)
|
|
if (active)
|
|
|
SetPageActive(page);
|
|
SetPageActive(page);
|
|
|
- update_page_reclaim_stat(zone, page, file, active);
|
|
|
|
|
add_page_to_lru_list(zone, page, lru);
|
|
add_page_to_lru_list(zone, page, lru);
|
|
|
|
|
+ update_page_reclaim_stat(zone, page, file, active);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|