Skip to content

Commit ed54eed

Browse files
chaseyuJaegeuk Kim
authored andcommitted
f2fs: convert f2fs_read_single_page() to use folio
Convert f2fs_read_single_page() to use folio and related functionality. Signed-off-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
1 parent db92e6c commit ed54eed

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

fs/f2fs/data.c

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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,
21092110
got_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 {
21202121
zero_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))) {
21402141
submit_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,
24242425
read_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

Comments
 (0)