@@ -514,7 +514,7 @@ int gfs2_find_jhead(struct gfs2_jdesc *jd, struct gfs2_log_header_host *head,
struct gfs2_journal_extent *je;
int sz, 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,7 +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);
+ sz = bio_add_folio(bio, folio, bsize, off);
if (sz == bsize)
goto block_added;
}
@@ -562,12 +563,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);
+ sz = bio_add_folio(bio, folio, bsize, off);
BUG_ON(sz != bsize);
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;
Remove a call to grab_cache_page() by using a folio throughout this function. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- fs/gfs2/lops.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)