mm: convert swap_page_sector() to swap_folio_sector()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 13 Dec 2023 21:58:38 +0000 (21:58 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 29 Dec 2023 19:58:31 +0000 (11:58 -0800)
All callers have a folio, so pass it in.  Saves a couple of calls to
compound_head().

Link: https://lkml.kernel.org/r/20231213215842.671461-10-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/swap.h
mm/page_io.c
mm/swapfile.c

index 3e1909087f6a9264b0d38f4d3481407718836031..2d09e9b7ee700fe57e5b5444f2f8d90f1acd804f 100644 (file)
@@ -493,7 +493,7 @@ struct backing_dev_info;
 extern int init_swap_address_space(unsigned int type, unsigned long nr_pages);
 extern void exit_swap_address_space(unsigned int type);
 extern struct swap_info_struct *get_swap_device(swp_entry_t entry);
-sector_t swap_page_sector(struct page *page);
+sector_t swap_folio_sector(struct folio *folio);
 
 static inline void put_swap_device(struct swap_info_struct *si)
 {
index e18afcd9c19a4901238ac5f37e1b84830a2ca639..6736c56526bfd60b0ee2b5db83f8a32c807010d4 100644 (file)
@@ -334,7 +334,7 @@ static void swap_writepage_bdev_sync(struct folio *folio,
 
        bio_init(&bio, sis->bdev, &bv, 1,
                 REQ_OP_WRITE | REQ_SWAP | wbc_to_write_flags(wbc));
-       bio.bi_iter.bi_sector = swap_page_sector(&folio->page);
+       bio.bi_iter.bi_sector = swap_folio_sector(folio);
        bio_add_folio_nofail(&bio, folio, folio_size(folio), 0);
 
        bio_associate_blkg_from_page(&bio, folio);
@@ -355,7 +355,7 @@ static void swap_writepage_bdev_async(struct folio *folio,
        bio = bio_alloc(sis->bdev, 1,
                        REQ_OP_WRITE | REQ_SWAP | wbc_to_write_flags(wbc),
                        GFP_NOIO);
-       bio->bi_iter.bi_sector = swap_page_sector(&folio->page);
+       bio->bi_iter.bi_sector = swap_folio_sector(folio);
        bio->bi_end_io = end_swap_bio_write;
        bio_add_folio_nofail(bio, folio, folio_size(folio), 0);
 
@@ -461,7 +461,7 @@ static void swap_readpage_bdev_sync(struct folio *folio,
        struct bio bio;
 
        bio_init(&bio, sis->bdev, &bv, 1, REQ_OP_READ);
-       bio.bi_iter.bi_sector = swap_page_sector(&folio->page);
+       bio.bi_iter.bi_sector = swap_folio_sector(folio);
        bio_add_folio_nofail(&bio, folio, folio_size(folio), 0);
        /*
         * Keep this task valid during swap readpage because the oom killer may
@@ -480,7 +480,7 @@ static void swap_readpage_bdev_async(struct folio *folio,
        struct bio *bio;
 
        bio = bio_alloc(sis->bdev, 1, REQ_OP_READ, GFP_KERNEL);
-       bio->bi_iter.bi_sector = swap_page_sector(&folio->page);
+       bio->bi_iter.bi_sector = swap_folio_sector(folio);
        bio->bi_end_io = end_swap_bio_read;
        bio_add_folio_nofail(bio, folio, folio_size(folio), 0);
        count_vm_event(PSWPIN);
index 1501bc9564566faefe87cedd6d27df5ef6c26582..b22c47b11d6523c87d02e398caca5d8e577559a6 100644 (file)
@@ -227,14 +227,14 @@ offset_to_swap_extent(struct swap_info_struct *sis, unsigned long offset)
        BUG();
 }
 
-sector_t swap_page_sector(struct page *page)
+sector_t swap_folio_sector(struct folio *folio)
 {
-       struct swap_info_struct *sis = page_swap_info(page);
+       struct swap_info_struct *sis = swp_swap_info(folio->swap);
        struct swap_extent *se;
        sector_t sector;
        pgoff_t offset;
 
-       offset = __page_file_index(page);
+       offset = swp_offset(folio->swap);
        se = offset_to_swap_extent(sis, offset);
        sector = se->start_block + (offset - se->start_page);
        return sector << (PAGE_SHIFT - 9);