aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmscan.c
diff options
context:
space:
mode:
authorJohannes Weiner <hannes@cmpxchg.org>2009-03-31 18:23:13 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-01 11:59:13 -0400
commitad1c3544d0a85da7738ce8cff6f8a148da57935c (patch)
treef1ac66e22e172945f200f1b2fd9a2ece23a0880b /mm/vmscan.c
parent2443462b0a04ef0f82ad48f4fd0ef4ac5b24c4b7 (diff)
mm: don't free swap slots on page deactivation
The pagevec_swap_free() at the end of shrink_active_list() was introduced in 68a22394 "vmscan: free swap space on swap-in/activation" when shrink_active_list() was still rotating referenced active pages. In 7e9cd48 "vmscan: fix pagecache reclaim referenced bit check" this was changed, the rotating removed but the pagevec_swap_free() after the rotation loop was forgotten, applying now to the pagevec of the deactivation loop instead. Now swap space is freed for deactivated pages. And only for those that happen to be on the pagevec after the deactivation loop. Complete 7e9cd48 and remove the rest of the swap freeing. Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> Acked-by: Rik van Riel <riel@redhat.com> Cc: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmscan.c')
-rw-r--r--mm/vmscan.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 988aef933016..e70fae31e968 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1303,9 +1303,6 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
1303 spin_unlock_irq(&zone->lru_lock); 1303 spin_unlock_irq(&zone->lru_lock);
1304 if (buffer_heads_over_limit) 1304 if (buffer_heads_over_limit)
1305 pagevec_strip(&pvec); 1305 pagevec_strip(&pvec);
1306 if (vm_swap_full())
1307 pagevec_swap_free(&pvec);
1308
1309 pagevec_release(&pvec); 1306 pagevec_release(&pvec);
1310} 1307}
1311 1308