vmscan.c (5994eabf3bbbea550166ae90de0c854fc984c95d) vmscan.c (3d2c908768877714a354ee6d7bf93e801400d5e2)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds
4 *
5 * Swap reorganised 29.12.95, Stephen Tweedie.
6 * kswapd added: 7.1.96 sct
7 * Removed kswapd_ctl limits, and swap out as many pages as needed
8 * to bring the system back to freepages.high: 2.4.97, Rik van Riel.

--- 1409 unchanged lines hidden (view full) ---

1418 goto cannot_free;
1419 /* note: atomic_cmpxchg in folio_ref_freeze provides the smp_rmb */
1420 if (unlikely(folio_test_dirty(folio))) {
1421 folio_ref_unfreeze(folio, refcount);
1422 goto cannot_free;
1423 }
1424
1425 if (folio_test_swapcache(folio)) {
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 1991, 1992, 1993, 1994 Linus Torvalds
4 *
5 * Swap reorganised 29.12.95, Stephen Tweedie.
6 * kswapd added: 7.1.96 sct
7 * Removed kswapd_ctl limits, and swap out as many pages as needed
8 * to bring the system back to freepages.high: 2.4.97, Rik van Riel.

--- 1409 unchanged lines hidden (view full) ---

1418 goto cannot_free;
1419 /* note: atomic_cmpxchg in folio_ref_freeze provides the smp_rmb */
1420 if (unlikely(folio_test_dirty(folio))) {
1421 folio_ref_unfreeze(folio, refcount);
1422 goto cannot_free;
1423 }
1424
1425 if (folio_test_swapcache(folio)) {
1426 swp_entry_t swap = folio_swap_entry(folio);
1426 swp_entry_t swap = folio->swap;
1427
1428 if (reclaimed && !mapping_exiting(mapping))
1429 shadow = workingset_eviction(folio, target_memcg);
1430 __delete_from_swap_cache(folio, swap, shadow);
1431 mem_cgroup_swapout(folio, swap);
1432 xa_unlock_irq(&mapping->i_pages);
1433 put_swap_folio(folio, swap);
1434 } else {

--- 6714 unchanged lines hidden ---
1427
1428 if (reclaimed && !mapping_exiting(mapping))
1429 shadow = workingset_eviction(folio, target_memcg);
1430 __delete_from_swap_cache(folio, swap, shadow);
1431 mem_cgroup_swapout(folio, swap);
1432 xa_unlock_irq(&mapping->i_pages);
1433 put_swap_folio(folio, swap);
1434 } else {

--- 6714 unchanged lines hidden ---