diff options
author | Matthew Wilcox | 2023-03-24 18:01:26 +0000 |
---|---|---|
committer | Theodore Ts'o | 2023-04-06 13:39:52 -0400 |
commit | f2b229a8c6c2633c35cb7446cfabea5a6f721edc (patch) | |
tree | 478eea88993e22ab6b71ed3db62057b7e477ae30 /fs/ext4 | |
parent | 9ea0e45bd2f6cbfba787360f5ba8e18deabb7671 (diff) |
ext4: Use a folio iterator in __read_end_io()
Iterate once per folio, not once per page.
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://lore.kernel.org/r/20230324180129.1220691-27-willy@infradead.org
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/readpage.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/fs/ext4/readpage.c b/fs/ext4/readpage.c index fed4ddb652df..6f46823fba61 100644 --- a/fs/ext4/readpage.c +++ b/fs/ext4/readpage.c @@ -68,18 +68,16 @@ struct bio_post_read_ctx { static void __read_end_io(struct bio *bio) { - struct page *page; - struct bio_vec *bv; - struct bvec_iter_all iter_all; + struct folio_iter fi; - bio_for_each_segment_all(bv, bio, iter_all) { - page = bv->bv_page; + bio_for_each_folio_all(fi, bio) { + struct folio *folio = fi.folio; if (bio->bi_status) - ClearPageUptodate(page); + folio_clear_uptodate(folio); else - SetPageUptodate(page); - unlock_page(page); + folio_mark_uptodate(folio); + folio_unlock(folio); } if (bio->bi_private) mempool_free(bio->bi_private, bio_post_read_ctx_pool); |