@@ -1568,16 +1568,15 @@ static bool swap_page_trans_huge_swapped(struct swap_info_struct *si,
1568
1568
return ret ;
1569
1569
}
1570
1570
1571
- static bool page_swapped (struct page * page )
1571
+ static bool folio_swapped (struct folio * folio )
1572
1572
{
1573
1573
swp_entry_t entry ;
1574
1574
struct swap_info_struct * si ;
1575
1575
1576
- if (!IS_ENABLED (CONFIG_THP_SWAP ) || likely (!PageTransCompound ( page )))
1577
- return page_swapcount (page ) != 0 ;
1576
+ if (!IS_ENABLED (CONFIG_THP_SWAP ) || likely (!folio_test_large ( folio )))
1577
+ return page_swapcount (& folio -> page ) != 0 ;
1578
1578
1579
- page = compound_head (page );
1580
- entry .val = page_private (page );
1579
+ entry = folio_swap_entry (folio );
1581
1580
si = _swap_info_get (entry );
1582
1581
if (si )
1583
1582
return swap_page_trans_huge_swapped (si , entry );
@@ -1590,13 +1589,14 @@ static bool page_swapped(struct page *page)
1590
1589
*/
1591
1590
int try_to_free_swap (struct page * page )
1592
1591
{
1593
- VM_BUG_ON_PAGE (!PageLocked (page ), page );
1592
+ struct folio * folio = page_folio (page );
1593
+ VM_BUG_ON_FOLIO (!folio_test_locked (folio ), folio );
1594
1594
1595
- if (!PageSwapCache ( page ))
1595
+ if (!folio_test_swapcache ( folio ))
1596
1596
return 0 ;
1597
- if (PageWriteback ( page ))
1597
+ if (folio_test_writeback ( folio ))
1598
1598
return 0 ;
1599
- if (page_swapped ( page ))
1599
+ if (folio_swapped ( folio ))
1600
1600
return 0 ;
1601
1601
1602
1602
/*
@@ -1617,9 +1617,8 @@ int try_to_free_swap(struct page *page)
1617
1617
if (pm_suspended_storage ())
1618
1618
return 0 ;
1619
1619
1620
- page = compound_head (page );
1621
- delete_from_swap_cache (page );
1622
- SetPageDirty (page );
1620
+ delete_from_swap_cache (& folio -> page );
1621
+ folio_set_dirty (folio );
1623
1622
return 1 ;
1624
1623
}
1625
1624
0 commit comments