@@ -2207,19 +2207,22 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
2207
2207
/* get rid of pages beyond EOF */
2208
2208
for (i = 0 ; i < cc -> cluster_size ; i ++ ) {
2209
2209
struct page * page = cc -> rpages [i ];
2210
+ struct folio * folio ;
2210
2211
2211
2212
if (!page )
2212
2213
continue ;
2213
- if ((sector_t )page -> index >= last_block_in_file ) {
2214
- zero_user_segment (page , 0 , PAGE_SIZE );
2215
- if (!PageUptodate (page ))
2216
- SetPageUptodate (page );
2217
- } else if (!PageUptodate (page )) {
2214
+
2215
+ folio = page_folio (page );
2216
+ if ((sector_t )folio -> index >= last_block_in_file ) {
2217
+ folio_zero_segment (folio , 0 , folio_size (folio ));
2218
+ if (!folio_test_uptodate (folio ))
2219
+ folio_mark_uptodate (folio );
2220
+ } else if (!folio_test_uptodate (folio )) {
2218
2221
continue ;
2219
2222
}
2220
- unlock_page ( page );
2223
+ folio_unlock ( folio );
2221
2224
if (for_write )
2222
- put_page ( page );
2225
+ folio_put ( folio );
2223
2226
cc -> rpages [i ] = NULL ;
2224
2227
cc -> nr_rpages -- ;
2225
2228
}
@@ -2279,7 +2282,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
2279
2282
}
2280
2283
2281
2284
for (i = 0 ; i < cc -> nr_cpages ; i ++ ) {
2282
- struct page * page = dic -> cpages [i ];
2285
+ struct folio * folio = page_folio ( dic -> cpages [i ]) ;
2283
2286
block_t blkaddr ;
2284
2287
struct bio_post_read_ctx * ctx ;
2285
2288
@@ -2289,7 +2292,8 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
2289
2292
2290
2293
f2fs_wait_on_block_writeback (inode , blkaddr );
2291
2294
2292
- if (f2fs_load_compressed_page (sbi , page , blkaddr )) {
2295
+ if (f2fs_load_compressed_page (sbi , folio_page (folio , 0 ),
2296
+ blkaddr )) {
2293
2297
if (atomic_dec_and_test (& dic -> remaining_pages )) {
2294
2298
f2fs_decompress_cluster (dic , true);
2295
2299
break ;
@@ -2299,7 +2303,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
2299
2303
2300
2304
if (bio && (!page_is_mergeable (sbi , bio ,
2301
2305
* last_block_in_bio , blkaddr ) ||
2302
- !f2fs_crypt_mergeable_bio (bio , inode , page -> index , NULL ))) {
2306
+ !f2fs_crypt_mergeable_bio (bio , inode , folio -> index , NULL ))) {
2303
2307
submit_and_realloc :
2304
2308
f2fs_submit_read_bio (sbi , bio , DATA );
2305
2309
bio = NULL ;
@@ -2308,7 +2312,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
2308
2312
if (!bio ) {
2309
2313
bio = f2fs_grab_read_bio (inode , blkaddr , nr_pages ,
2310
2314
f2fs_ra_op_flags (rac ),
2311
- page -> index , for_write );
2315
+ folio -> index , for_write );
2312
2316
if (IS_ERR (bio )) {
2313
2317
ret = PTR_ERR (bio );
2314
2318
f2fs_decompress_end_io (dic , ret , true);
@@ -2318,7 +2322,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
2318
2322
}
2319
2323
}
2320
2324
2321
- if (bio_add_page (bio , page , blocksize , 0 ) < blocksize )
2325
+ if (! bio_add_folio (bio , folio , blocksize , 0 ))
2322
2326
goto submit_and_realloc ;
2323
2327
2324
2328
ctx = get_post_read_ctx (bio );
0 commit comments