mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
mm: don't free swap slots on page deactivation
The pagevec_swap_free() at the end of shrink_active_list() was introduced in68a22394
"vmscan: free swap space on swap-in/activation" when shrink_active_list() was still rotating referenced active pages. In7e9cd48
"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. Complete7e9cd48
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>
This commit is contained in:
parent
2443462b0a
commit
ad1c3544d0
@ -1303,9 +1303,6 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
|
|||||||
spin_unlock_irq(&zone->lru_lock);
|
spin_unlock_irq(&zone->lru_lock);
|
||||||
if (buffer_heads_over_limit)
|
if (buffer_heads_over_limit)
|
||||||
pagevec_strip(&pvec);
|
pagevec_strip(&pvec);
|
||||||
if (vm_swap_full())
|
|
||||||
pagevec_swap_free(&pvec);
|
|
||||||
|
|
||||||
pagevec_release(&pvec);
|
pagevec_release(&pvec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user