Convert to use folio, so that we can get rid of 'page->index' to
prepare for removal of 'index' field in structure page [1].

[1] https://lore.kernel.org/all/zp8fgusibgq1t...@casper.infradead.org/

Cc: Matthew Wilcox <wi...@infradead.org>
Signed-off-by: Chao Yu <c...@kernel.org>
---
 fs/f2fs/data.c | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 0779e222f709..9e21cfe11cc7 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2207,19 +2207,22 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, 
struct bio **bio_ret,
        /* get rid of pages beyond EOF */
        for (i = 0; i < cc->cluster_size; i++) {
                struct page *page = cc->rpages[i];
+               struct folio *folio;
 
                if (!page)
                        continue;
-               if ((sector_t)page->index >= last_block_in_file) {
-                       zero_user_segment(page, 0, PAGE_SIZE);
-                       if (!PageUptodate(page))
-                               SetPageUptodate(page);
-               } else if (!PageUptodate(page)) {
+
+               folio = page_folio(page);
+               if ((sector_t)folio->index >= last_block_in_file) {
+                       folio_zero_segment(folio, 0, folio_size(folio));
+                       if (!folio_test_uptodate(folio))
+                               folio_mark_uptodate(folio);
+               } else if (!folio_test_uptodate(folio)) {
                        continue;
                }
-               unlock_page(page);
+               folio_unlock(folio);
                if (for_write)
-                       put_page(page);
+                       folio_put(folio);
                cc->rpages[i] = NULL;
                cc->nr_rpages--;
        }
@@ -2279,7 +2282,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct 
bio **bio_ret,
        }
 
        for (i = 0; i < cc->nr_cpages; i++) {
-               struct page *page = dic->cpages[i];
+               struct folio *folio = page_folio(dic->cpages[i]);
                block_t blkaddr;
                struct bio_post_read_ctx *ctx;
 
@@ -2289,7 +2292,8 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct 
bio **bio_ret,
 
                f2fs_wait_on_block_writeback(inode, blkaddr);
 
-               if (f2fs_load_compressed_page(sbi, page, blkaddr)) {
+               if (f2fs_load_compressed_page(sbi, folio_page(folio, 0),
+                                                               blkaddr)) {
                        if (atomic_dec_and_test(&dic->remaining_pages)) {
                                f2fs_decompress_cluster(dic, true);
                                break;
@@ -2299,7 +2303,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct 
bio **bio_ret,
 
                if (bio && (!page_is_mergeable(sbi, bio,
                                        *last_block_in_bio, blkaddr) ||
-                   !f2fs_crypt_mergeable_bio(bio, inode, page->index, NULL))) {
+                   !f2fs_crypt_mergeable_bio(bio, inode, folio->index, NULL))) 
{
 submit_and_realloc:
                        f2fs_submit_read_bio(sbi, bio, DATA);
                        bio = NULL;
@@ -2308,7 +2312,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct 
bio **bio_ret,
                if (!bio) {
                        bio = f2fs_grab_read_bio(inode, blkaddr, nr_pages,
                                        f2fs_ra_op_flags(rac),
-                                       page->index, for_write);
+                                       folio->index, for_write);
                        if (IS_ERR(bio)) {
                                ret = PTR_ERR(bio);
                                f2fs_decompress_end_io(dic, ret, true);
@@ -2318,7 +2322,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct 
bio **bio_ret,
                        }
                }
 
-               if (bio_add_page(bio, page, blocksize, 0) < blocksize)
+               if (bio_add_folio(bio, folio, blocksize, 0) < blocksize)
                        goto submit_and_realloc;
 
                ctx = get_post_read_ctx(bio);
-- 
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