@@ -2063,7 +2063,7 @@ static inline loff_t f2fs_readpage_limit(struct inode *inode)
20632063 return i_size_read (inode );
20642064}
20652065
2066- static int f2fs_read_single_page (struct inode * inode , struct page * page ,
2066+ static int f2fs_read_single_page (struct inode * inode , struct folio * folio ,
20672067 unsigned nr_pages ,
20682068 struct f2fs_map_blocks * map ,
20692069 struct bio * * bio_ret ,
@@ -2076,9 +2076,10 @@ static int f2fs_read_single_page(struct inode *inode, struct page *page,
20762076 sector_t last_block ;
20772077 sector_t last_block_in_file ;
20782078 sector_t block_nr ;
2079+ pgoff_t index = folio_index (folio );
20792080 int ret = 0 ;
20802081
2081- block_in_file = (sector_t )page_index ( page ) ;
2082+ block_in_file = (sector_t )index ;
20822083 last_block = block_in_file + nr_pages ;
20832084 last_block_in_file = bytes_to_blks (inode ,
20842085 f2fs_readpage_limit (inode ) + blocksize - 1 );
@@ -2109,7 +2110,7 @@ static int f2fs_read_single_page(struct inode *inode, struct page *page,
21092110got_it :
21102111 if ((map -> m_flags & F2FS_MAP_MAPPED )) {
21112112 block_nr = map -> m_pblk + block_in_file - map -> m_lblk ;
2112- SetPageMappedToDisk ( page );
2113+ folio_set_mappedtodisk ( folio );
21132114
21142115 if (!f2fs_is_valid_blkaddr (F2FS_I_SB (inode ), block_nr ,
21152116 DATA_GENERIC_ENHANCE_READ )) {
@@ -2118,15 +2119,15 @@ static int f2fs_read_single_page(struct inode *inode, struct page *page,
21182119 }
21192120 } else {
21202121zero_out :
2121- zero_user_segment ( page , 0 , PAGE_SIZE );
2122- if (f2fs_need_verity (inode , page -> index ) &&
2123- !fsverity_verify_page ( page )) {
2122+ folio_zero_segment ( folio , 0 , folio_size ( folio ) );
2123+ if (f2fs_need_verity (inode , index ) &&
2124+ !fsverity_verify_folio ( folio )) {
21242125 ret = - EIO ;
21252126 goto out ;
21262127 }
2127- if (!PageUptodate ( page ))
2128- SetPageUptodate ( page );
2129- unlock_page ( page );
2128+ if (!folio_test_uptodate ( folio ))
2129+ folio_mark_uptodate ( folio );
2130+ folio_unlock ( folio );
21302131 goto out ;
21312132 }
21322133
@@ -2136,14 +2137,14 @@ static int f2fs_read_single_page(struct inode *inode, struct page *page,
21362137 */
21372138 if (bio && (!page_is_mergeable (F2FS_I_SB (inode ), bio ,
21382139 * last_block_in_bio , block_nr ) ||
2139- !f2fs_crypt_mergeable_bio (bio , inode , page -> index , NULL ))) {
2140+ !f2fs_crypt_mergeable_bio (bio , inode , index , NULL ))) {
21402141submit_and_realloc :
21412142 f2fs_submit_read_bio (F2FS_I_SB (inode ), bio , DATA );
21422143 bio = NULL ;
21432144 }
21442145 if (bio == NULL ) {
21452146 bio = f2fs_grab_read_bio (inode , block_nr , nr_pages ,
2146- is_readahead ? REQ_RAHEAD : 0 , page -> index ,
2147+ is_readahead ? REQ_RAHEAD : 0 , index ,
21472148 false);
21482149 if (IS_ERR (bio )) {
21492150 ret = PTR_ERR (bio );
@@ -2158,7 +2159,7 @@ static int f2fs_read_single_page(struct inode *inode, struct page *page,
21582159 */
21592160 f2fs_wait_on_block_writeback (inode , block_nr );
21602161
2161- if (bio_add_page (bio , page , blocksize , 0 ) < blocksize )
2162+ if (! bio_add_folio (bio , folio , blocksize , 0 ))
21622163 goto submit_and_realloc ;
21632164
21642165 inc_page_count (F2FS_I_SB (inode ), F2FS_RD_DATA );
@@ -2424,7 +2425,7 @@ static int f2fs_mpage_readpages(struct inode *inode,
24242425read_single_page :
24252426#endif
24262427
2427- ret = f2fs_read_single_page (inode , & folio -> page , max_nr_pages , & map ,
2428+ ret = f2fs_read_single_page (inode , folio , max_nr_pages , & map ,
24282429 & bio , & last_block_in_bio , rac );
24292430 if (ret ) {
24302431#ifdef CONFIG_F2FS_FS_COMPRESSION
0 commit comments