diff options
author | Matthew Wilcox (Oracle) <willy@infradead.org> | 2025-03-31 21:10:22 +0100 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2025-04-28 15:18:12 +0000 |
commit | 8cc29b38cb26dc0adc3b71ece4cadd3f3a4821ce (patch) | |
tree | 2a0d5bf59755eae5e3ac0a96c9636f831266e00c /fs | |
parent | a8cb9b3d9b841c65dae4122de2096df02525e92c (diff) |
f2fs: Use a folio in f2fs_write_raw_pages()
Convert each page in rpages to a folio before operating on it. Replaces
eight calls to compound_head() with one and removes a reference to
page->mapping which is going away soon.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/f2fs/compress.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index 9eecc167b1fc..668c04e93a95 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -1532,37 +1532,39 @@ static int f2fs_write_raw_pages(struct compress_ctx *cc, f2fs_lock_op(sbi); for (i = 0; i < cc->cluster_size; i++) { + struct folio *folio; + if (!cc->rpages[i]) continue; + folio = page_folio(cc->rpages[i]); retry_write: - lock_page(cc->rpages[i]); + folio_lock(folio); - if (cc->rpages[i]->mapping != mapping) { + if (folio->mapping != mapping) { continue_unlock: - unlock_page(cc->rpages[i]); + folio_unlock(folio); continue; } - if (!PageDirty(cc->rpages[i])) + if (!folio_test_dirty(folio)) goto continue_unlock; - if (folio_test_writeback(page_folio(cc->rpages[i]))) { + if (folio_test_writeback(folio)) { if (wbc->sync_mode == WB_SYNC_NONE) goto continue_unlock; - f2fs_wait_on_page_writeback(cc->rpages[i], DATA, true, true); + f2fs_folio_wait_writeback(folio, DATA, true, true); } - if (!clear_page_dirty_for_io(cc->rpages[i])) + if (!folio_clear_dirty_for_io(folio)) goto continue_unlock; submitted = 0; - ret = f2fs_write_single_data_page(page_folio(cc->rpages[i]), - &submitted, + ret = f2fs_write_single_data_page(folio, &submitted, NULL, NULL, wbc, io_type, compr_blocks, false); if (ret) { if (ret == AOP_WRITEPAGE_ACTIVATE) { - unlock_page(cc->rpages[i]); + folio_unlock(folio); ret = 0; } else if (ret == -EAGAIN) { ret = 0; |