diff options
| author | Matthew Wilcox (Oracle) <willy@infradead.org> | 2025-02-10 13:34:44 +0000 |
|---|---|---|
| committer | Andreas Gruenbacher <agruenba@redhat.com> | 2025-03-10 18:15:39 +0100 |
| commit | 40829760096df1365f7e3f2768d0b594e3e6488f (patch) | |
| tree | 4a1c1d2d0e72139dc2df8c969cf75168a027bd63 | |
| parent | e00307e8d4b2853ffd7835d4fdb7d6d8c696d189 (diff) | |
gfs2: Convert gfs2_find_jhead() to use a folio
Remove a call to grab_cache_page() by using a folio throughout
this function.
[agruenba@redhat.com: Adjust to return value difference between
bio_add_page() and bio_add_folio().]
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
| -rw-r--r-- | fs/gfs2/lops.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c index f641ff837edc..8dffcccef7a4 100644 --- a/fs/gfs2/lops.c +++ b/fs/gfs2/lops.c @@ -512,9 +512,9 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head, unsigned int shift = PAGE_SHIFT - bsize_shift; unsigned int max_blocks = 2 * 1024 * 1024 >> bsize_shift; struct gfs2_journal_extent *je; - int sz, ret = 0; + int ret = 0; struct bio *bio = NULL; - struct page *page = NULL; + struct folio *folio = NULL; bool done = false; errseq_t since; @@ -527,9 +527,10 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head, u64 dblock = je->dblock; for (; block < je->lblock + je->blocks; block++, dblock++) { - if (!page) { - page = grab_cache_page(mapping, block >> shift); - if (!page) { + if (!folio) { + folio = filemap_grab_folio(mapping, + block >> shift); + if (!folio) { ret = -ENOMEM; done = true; goto out; @@ -541,8 +542,7 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head, sector_t sector = dblock << sdp->sd_fsb2bb_shift; if (bio_end_sector(bio) == sector) { - sz = bio_add_page(bio, page, bsize, off); - if (sz == bsize) + if (bio_add_folio(bio, folio, bsize, off)) goto block_added; } if (off) { @@ -562,12 +562,12 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head, bio = gfs2_log_alloc_bio(sdp, dblock, gfs2_end_log_read); bio->bi_opf = REQ_OP_READ; add_block_to_new_bio: - sz = bio_add_page(bio, page, bsize, off); - BUG_ON(sz != bsize); + if (!bio_add_folio(bio, folio, bsize, off)) + BUG(); block_added: off += bsize; - if (off == PAGE_SIZE) - page = NULL; + if (off == folio_size(folio)) + folio = NULL; if (blocks_submitted <= blocks_read + max_blocks) { /* Keep at least one bio in flight */ continue; |
