}
 }
 
-struct page *f2fs_compress_control_page(struct page *page)
+struct folio *f2fs_compress_control_folio(struct folio *folio)
 {
-       return ((struct compress_io_ctx *)page_private(page))->rpages[0];
+       struct compress_io_ctx *ctx = folio->private;
+
+       return page_folio(ctx->rpages[0]);
 }
 
 int f2fs_init_compress_ctx(struct compress_ctx *cc)
 
 static bool __has_merged_page(struct bio *bio, struct inode *inode,
                                                struct page *page, nid_t ino)
 {
-       struct bio_vec *bvec;
-       struct bvec_iter_all iter_all;
+       struct folio_iter fi;
 
        if (!bio)
                return false;
        if (!inode && !page && !ino)
                return true;
 
-       bio_for_each_segment_all(bvec, bio, iter_all) {
-               struct page *target = bvec->bv_page;
+       bio_for_each_folio_all(fi, bio) {
+               struct folio *target = fi.folio;
 
-               if (fscrypt_is_bounce_page(target)) {
-                       target = fscrypt_pagecache_page(target);
+               if (fscrypt_is_bounce_folio(target)) {
+                       target = fscrypt_pagecache_folio(target);
                        if (IS_ERR(target))
                                continue;
                }
-               if (f2fs_is_compressed_page(target)) {
-                       target = f2fs_compress_control_page(target);
+               if (f2fs_is_compressed_page(&target->page)) {
+                       target = f2fs_compress_control_folio(target);
                        if (IS_ERR(target))
                                continue;
                }
 
                if (inode && inode == target->mapping->host)
                        return true;
-               if (page && page == target)
+               if (page && page == &target->page)
                        return true;
-               if (ino && ino == ino_of_node(target))
+               if (ino && ino == ino_of_node(&target->page))
                        return true;
        }
 
 
        CLUSTER_RAW_BLKS    /* return # of raw blocks in a cluster */
 };
 bool f2fs_is_compressed_page(struct page *page);
-struct page *f2fs_compress_control_page(struct page *page);
+struct folio *f2fs_compress_control_folio(struct folio *folio);
 int f2fs_prepare_compress_overwrite(struct inode *inode,
                        struct page **pagep, pgoff_t index, void **fsdata);
 bool f2fs_compress_write_end(struct inode *inode, void *fsdata,
        return false;
 }
 static inline bool f2fs_is_compress_level_valid(int alg, int lvl) { return false; }
-static inline struct page *f2fs_compress_control_page(struct page *page)
+static inline struct folio *f2fs_compress_control_folio(struct folio *folio)
 {
        WARN_ON_ONCE(1);
        return ERR_PTR(-EINVAL);