diff options
author | Matthew Wilcox (Oracle) <willy@infradead.org> | 2025-02-18 05:51:42 +0000 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2025-03-04 17:02:24 +0000 |
commit | 18f3814fa6a8aac0b32b3b8e8f85a6b601047ddc (patch) | |
tree | b6e6209d4898d2c147b64a0dbbd3743c356ececb /fs/f2fs/node.c | |
parent | e23bebc3c0d2db16f959d43213a305e85efd8ae5 (diff) |
f2fs: Convert last_fsync_dnode() to use a folio
Use the folio APIs where they exist. Saves several hidden calls to
compound_head(). Also removes a reference to page->mapping.
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/f2fs/node.c')
-rw-r--r-- | fs/f2fs/node.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index eeda3e6f83af..90387dae2838 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1572,7 +1572,7 @@ static struct page *last_fsync_dnode(struct f2fs_sb_info *sbi, nid_t ino) { pgoff_t index; struct folio_batch fbatch; - struct page *last_page = NULL; + struct folio *last_folio = NULL; int nr_folios; folio_batch_init(&fbatch); @@ -1584,45 +1584,45 @@ static struct page *last_fsync_dnode(struct f2fs_sb_info *sbi, nid_t ino) int i; for (i = 0; i < nr_folios; i++) { - struct page *page = &fbatch.folios[i]->page; + struct folio *folio = fbatch.folios[i]; if (unlikely(f2fs_cp_error(sbi))) { - f2fs_put_page(last_page, 0); + f2fs_folio_put(last_folio, false); folio_batch_release(&fbatch); return ERR_PTR(-EIO); } - if (!IS_DNODE(page) || !is_cold_node(page)) + if (!IS_DNODE(&folio->page) || !is_cold_node(&folio->page)) continue; - if (ino_of_node(page) != ino) + if (ino_of_node(&folio->page) != ino) continue; - lock_page(page); + folio_lock(folio); - if (unlikely(page->mapping != NODE_MAPPING(sbi))) { + if (unlikely(folio->mapping != NODE_MAPPING(sbi))) { continue_unlock: - unlock_page(page); + folio_unlock(folio); continue; } - if (ino_of_node(page) != ino) + if (ino_of_node(&folio->page) != ino) goto continue_unlock; - if (!PageDirty(page)) { + if (!folio_test_dirty(folio)) { /* someone wrote it for us */ goto continue_unlock; } - if (last_page) - f2fs_put_page(last_page, 0); + if (last_folio) + f2fs_folio_put(last_folio, false); - get_page(page); - last_page = page; - unlock_page(page); + folio_get(folio); + last_folio = folio; + folio_unlock(folio); } folio_batch_release(&fbatch); cond_resched(); } - return last_page; + return &last_folio->page; } static int __write_node_page(struct page *page, bool atomic, bool *submitted, |