Skip to content

Commit 3d2c908

Browse files
davidhildenbrandakpm00
authored andcommitted
mm/swap: inline folio_set_swap_entry() and folio_swap_entry()
Let's simply work on the folio directly and remove the helpers. Link: https://lkml.kernel.org/r/20230821160849.531668-4-david@redhat.com Signed-off-by: David Hildenbrand <david@redhat.com> Suggested-by: Matthew Wilcox <willy@infradead.org> Reviewed-by: Chris Li <chrisl@kernel.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Dan Streetman <ddstreet@ieee.org> Cc: Hugh Dickins <hughd@google.com> Cc: Peter Xu <peterx@redhat.com> Cc: Seth Jennings <sjenning@redhat.com> Cc: Vitaly Wool <vitaly.wool@konsulko.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 parent 85a1333 commit 3d2c908

File tree

8 files changed

+13
-24
lines changed

8 files changed

+13
-24
lines changed

include/linux/swap.h

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -333,25 +333,15 @@ struct swap_info_struct {
333333
*/
334334
};
335335

336-
static inline swp_entry_t folio_swap_entry(struct folio *folio)
337-
{
338-
return folio->swap;
339-
}
340-
341336
static inline swp_entry_t page_swap_entry(struct page *page)
342337
{
343338
struct folio *folio = page_folio(page);
344-
swp_entry_t entry = folio_swap_entry(folio);
339+
swp_entry_t entry = folio->swap;
345340

346341
entry.val += folio_page_idx(folio, page);
347342
return entry;
348343
}
349344

350-
static inline void folio_set_swap_entry(struct folio *folio, swp_entry_t entry)
351-
{
352-
folio->swap = entry;
353-
}
354-
355345
/* linux/mm/workingset.c */
356346
bool workingset_test_recent(void *shadow, bool file, bool *workingset);
357347
void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages);

mm/memory.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3828,7 +3828,7 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
38283828
folio_add_lru(folio);
38293829

38303830
/* To provide entry to swap_readpage() */
3831-
folio_set_swap_entry(folio, entry);
3831+
folio->swap = entry;
38323832
swap_readpage(page, true, NULL);
38333833
folio->private = NULL;
38343834
}

mm/shmem.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1642,7 +1642,7 @@ static int shmem_replace_folio(struct folio **foliop, gfp_t gfp,
16421642
int error;
16431643

16441644
old = *foliop;
1645-
entry = folio_swap_entry(old);
1645+
entry = old->swap;
16461646
swap_index = swp_offset(entry);
16471647
swap_mapping = swap_address_space(entry);
16481648

@@ -1663,7 +1663,7 @@ static int shmem_replace_folio(struct folio **foliop, gfp_t gfp,
16631663
__folio_set_locked(new);
16641664
__folio_set_swapbacked(new);
16651665
folio_mark_uptodate(new);
1666-
folio_set_swap_entry(new, entry);
1666+
new->swap = entry;
16671667
folio_set_swapcache(new);
16681668

16691669
/*
@@ -1785,7 +1785,7 @@ static int shmem_swapin_folio(struct inode *inode, pgoff_t index,
17851785
/* We have to do this with folio locked to prevent races */
17861786
folio_lock(folio);
17871787
if (!folio_test_swapcache(folio) ||
1788-
folio_swap_entry(folio).val != swap.val ||
1788+
folio->swap.val != swap.val ||
17891789
!shmem_confirm_swap(mapping, index, swap)) {
17901790
error = -EEXIST;
17911791
goto unlock;

mm/swap_state.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ int add_to_swap_cache(struct folio *folio, swp_entry_t entry,
100100

101101
folio_ref_add(folio, nr);
102102
folio_set_swapcache(folio);
103-
folio_set_swap_entry(folio, entry);
103+
folio->swap = entry;
104104

105105
do {
106106
xas_lock_irq(&xas);
@@ -156,8 +156,7 @@ void __delete_from_swap_cache(struct folio *folio,
156156
VM_BUG_ON_PAGE(entry != folio, entry);
157157
xas_next(&xas);
158158
}
159-
entry.val = 0;
160-
folio_set_swap_entry(folio, entry);
159+
folio->swap.val = 0;
161160
folio_clear_swapcache(folio);
162161
address_space->nrpages -= nr;
163162
__node_stat_mod_folio(folio, NR_FILE_PAGES, -nr);
@@ -233,7 +232,7 @@ bool add_to_swap(struct folio *folio)
233232
*/
234233
void delete_from_swap_cache(struct folio *folio)
235234
{
236-
swp_entry_t entry = folio_swap_entry(folio);
235+
swp_entry_t entry = folio->swap;
237236
struct address_space *address_space = swap_address_space(entry);
238237

239238
xa_lock_irq(&address_space->i_pages);

mm/swapfile.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1536,7 +1536,7 @@ static bool swap_page_trans_huge_swapped(struct swap_info_struct *si,
15361536

15371537
static bool folio_swapped(struct folio *folio)
15381538
{
1539-
swp_entry_t entry = folio_swap_entry(folio);
1539+
swp_entry_t entry = folio->swap;
15401540
struct swap_info_struct *si = _swap_info_get(entry);
15411541

15421542
if (!si)

mm/util.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,7 @@ struct address_space *folio_mapping(struct folio *folio)
764764
return NULL;
765765

766766
if (unlikely(folio_test_swapcache(folio)))
767-
return swap_address_space(folio_swap_entry(folio));
767+
return swap_address_space(folio->swap);
768768

769769
mapping = folio->mapping;
770770
if ((unsigned long)mapping & PAGE_MAPPING_FLAGS)

mm/vmscan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1423,7 +1423,7 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio,
14231423
}
14241424

14251425
if (folio_test_swapcache(folio)) {
1426-
swp_entry_t swap = folio_swap_entry(folio);
1426+
swp_entry_t swap = folio->swap;
14271427

14281428
if (reclaimed && !mapping_exiting(mapping))
14291429
shadow = workingset_eviction(folio, target_memcg);

mm/zswap.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1190,7 +1190,7 @@ static void zswap_fill_page(void *ptr, unsigned long value)
11901190

11911191
bool zswap_store(struct folio *folio)
11921192
{
1193-
swp_entry_t swp = folio_swap_entry(folio);
1193+
swp_entry_t swp = folio->swap;
11941194
int type = swp_type(swp);
11951195
pgoff_t offset = swp_offset(swp);
11961196
struct page *page = &folio->page;
@@ -1370,7 +1370,7 @@ bool zswap_store(struct folio *folio)
13701370

13711371
bool zswap_load(struct folio *folio)
13721372
{
1373-
swp_entry_t swp = folio_swap_entry(folio);
1373+
swp_entry_t swp = folio->swap;
13741374
int type = swp_type(swp);
13751375
pgoff_t offset = swp_offset(swp);
13761376
struct page *page = &folio->page;

0 commit comments

Comments
 (0)