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)
 {
 
 
        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);
        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);
 
        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
        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);
 
        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);