summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wilcox <willy@infradead.org>2023-03-24 18:01:26 +0000
committerTheodore Ts'o <tytso@mit.edu>2023-04-06 13:39:52 -0400
commitf2b229a8c6c2633c35cb7446cfabea5a6f721edc (patch)
tree478eea88993e22ab6b71ed3db62057b7e477ae30
parent9ea0e45bd2f6cbfba787360f5ba8e18deabb7671 (diff)
downloadlinux-f2b229a8c6c2633c35cb7446cfabea5a6f721edc.tar.gz
linux-f2b229a8c6c2633c35cb7446cfabea5a6f721edc.tar.bz2
linux-f2b229a8c6c2633c35cb7446cfabea5a6f721edc.zip
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>
-rw-r--r--fs/ext4/readpage.c14
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);