Convert f2fs_read_single_page() to use folio and related
functionality.

Signed-off-by: Chao Yu <c...@kernel.org>
---
 fs/f2fs/data.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 14dcd621acaa..c35107657c97 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2092,7 +2092,7 @@ static inline loff_t f2fs_readpage_limit(struct inode 
*inode)
        return i_size_read(inode);
 }
 
-static int f2fs_read_single_page(struct inode *inode, struct page *page,
+static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
                                        unsigned nr_pages,
                                        struct f2fs_map_blocks *map,
                                        struct bio **bio_ret,
@@ -2105,9 +2105,10 @@ static int f2fs_read_single_page(struct inode *inode, 
struct page *page,
        sector_t last_block;
        sector_t last_block_in_file;
        sector_t block_nr;
+       pgoff_t index = folio_index(folio);
        int ret = 0;
 
-       block_in_file = (sector_t)page_index(page);
+       block_in_file = (sector_t)index;
        last_block = block_in_file + nr_pages;
        last_block_in_file = bytes_to_blks(inode,
                        f2fs_readpage_limit(inode) + blocksize - 1);
@@ -2138,7 +2139,7 @@ static int f2fs_read_single_page(struct inode *inode, 
struct page *page,
 got_it:
        if ((map->m_flags & F2FS_MAP_MAPPED)) {
                block_nr = map->m_pblk + block_in_file - map->m_lblk;
-               SetPageMappedToDisk(page);
+               folio_set_mappedtodisk(folio);
 
                if (!f2fs_is_valid_blkaddr(F2FS_I_SB(inode), block_nr,
                                                DATA_GENERIC_ENHANCE_READ)) {
@@ -2147,15 +2148,15 @@ static int f2fs_read_single_page(struct inode *inode, 
struct page *page,
                }
        } else {
 zero_out:
-               zero_user_segment(page, 0, PAGE_SIZE);
-               if (f2fs_need_verity(inode, page->index) &&
-                   !fsverity_verify_page(page)) {
+               folio_zero_segment(folio, 0, folio_size(folio));
+               if (f2fs_need_verity(inode, index) &&
+                   !fsverity_verify_folio(folio)) {
                        ret = -EIO;
                        goto out;
                }
-               if (!PageUptodate(page))
-                       SetPageUptodate(page);
-               unlock_page(page);
+               if (!folio_test_uptodate(folio))
+                       folio_mark_uptodate(folio);
+               folio_unlock(folio);
                goto out;
        }
 
@@ -2165,14 +2166,14 @@ static int f2fs_read_single_page(struct inode *inode, 
struct page *page,
         */
        if (bio && (!page_is_mergeable(F2FS_I_SB(inode), bio,
                                       *last_block_in_bio, block_nr) ||
-                   !f2fs_crypt_mergeable_bio(bio, inode, page->index, NULL))) {
+                   !f2fs_crypt_mergeable_bio(bio, inode, index, NULL))) {
 submit_and_realloc:
                f2fs_submit_read_bio(F2FS_I_SB(inode), bio, DATA);
                bio = NULL;
        }
        if (bio == NULL) {
                bio = f2fs_grab_read_bio(inode, block_nr, nr_pages,
-                               is_readahead ? REQ_RAHEAD : 0, page->index,
+                               is_readahead ? REQ_RAHEAD : 0, index,
                                false);
                if (IS_ERR(bio)) {
                        ret = PTR_ERR(bio);
@@ -2187,7 +2188,7 @@ static int f2fs_read_single_page(struct inode *inode, 
struct page *page,
         */
        f2fs_wait_on_block_writeback(inode, block_nr);
 
-       if (bio_add_page(bio, page, blocksize, 0) < blocksize)
+       if (!bio_add_folio(bio, folio, blocksize, 0))
                goto submit_and_realloc;
 
        inc_page_count(F2FS_I_SB(inode), F2FS_RD_DATA);
@@ -2453,7 +2454,7 @@ static int f2fs_mpage_readpages(struct inode *inode,
 read_single_page:
 #endif
 
-               ret = f2fs_read_single_page(inode, &folio->page, max_nr_pages, 
&map,
+               ret = f2fs_read_single_page(inode, folio, max_nr_pages, &map,
                                        &bio, &last_block_in_bio, rac);
                if (ret) {
 #ifdef CONFIG_F2FS_FS_COMPRESSION
-- 
2.40.1



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to