[PATCH v2 2/2] bcachefs: Factor out readpages_iter_folio_revert
Alan Huang <[email protected]> Wed, 6 Aug 2025 14:25:57 +0800
| Newsgroups | org.kernel.vger.linux-bcachefs |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Alan Huang <[email protected]> --- fs/bcachefs/fs-io-buffered.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/bcachefs/fs-io-buffered.c b/fs/bcachefs/fs-io-buffered.c index 9f6f9f0f21ff..fd8beb5167ee 100644 --- a/fs/bcachefs/fs-io-buffered.c +++ b/fs/bcachefs/fs-io-buffered.c @@ -42,6 +42,14 @@ struct readpages_iter { folios folios; }; +static inline void readpages_iter_folio_revert(struct readahead_control *ractl, + struct folio *folio) +{ + bch2_folio_release(folio); + ractl->_nr_pages += folio_nr_pages(folio); + ractl->_index -= folio_nr_pages(folio); +} + static int readpages_iter_init(struct readpages_iter *iter, struct readahead_control *ractl) { @@ -52,9 +60,7 @@ static int readpages_iter_init(struct readpages_iter *iter, while ((folio = __readahead_folio(ractl))) { if (!bch2_folio_create(folio, GFP_KERNEL) || darray_push(&iter->folios, folio)) { - bch2_folio_release(folio); - ractl->_nr_pages += folio_nr_pages(folio); - ractl->_index -= folio_nr_pages(folio); + readpages_iter_folio_revert(ractl, folio); return iter->folios.nr ? 0 : -ENOMEM; } @@ -68,9 +74,7 @@ static void readpages_iter_exit(struct readpages_iter *iter, struct readahead_control *ractl) { darray_for_each_reverse(iter->folios, folio) { - bch2_folio_release(*folio); - ractl->_nr_pages += folio_nr_pages(*folio); - ractl->_index -= folio_nr_pages(*folio); + readpages_iter_folio_revert(ractl, *folio); folio_get(*folio); } } -- 2.49.0