gfs2: convert gfs2_write_buf_to_page() to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 16 Oct 2023 20:10:56 +0000 (21:10 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 25 Oct 2023 23:47:08 +0000 (16:47 -0700)
Remove several folio->page->folio conversions.

Link: https://lkml.kernel.org/r/20231016201114.1928083-10-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Andreas Gruenbacher <agruenba@redhat.com>
Cc: Pankaj Raghav <p.raghav@samsung.com>
Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/gfs2/quota.c

index d3d013d1d5ac8b27a62b3dcdf305f988ebc86884..25354278cecbc09f30436df7eabeee69d9765c54 100644 (file)
@@ -749,7 +749,7 @@ static int gfs2_write_buf_to_page(struct gfs2_sbd *sdp, unsigned long index,
        struct gfs2_inode *ip = GFS2_I(sdp->sd_quota_inode);
        struct inode *inode = &ip->i_inode;
        struct address_space *mapping = inode->i_mapping;
-       struct page *page;
+       struct folio *folio;
        struct buffer_head *bh;
        u64 blk;
        unsigned bsize = sdp->sd_sb.sb_bsize, bnum = 0, boff = 0;
@@ -758,15 +758,15 @@ static int gfs2_write_buf_to_page(struct gfs2_sbd *sdp, unsigned long index,
        blk = index << (PAGE_SHIFT - sdp->sd_sb.sb_bsize_shift);
        boff = off % bsize;
 
-       page = grab_cache_page(mapping, index);
-       if (!page)
-               return -ENOMEM;
-       if (!page_has_buffers(page))
-               create_empty_buffers(page, bsize, 0);
+       folio = filemap_grab_folio(mapping, index);
+       if (IS_ERR(folio))
+               return PTR_ERR(folio);
+       bh = folio_buffers(folio);
+       if (!bh)
+               bh = folio_create_empty_buffers(folio, bsize, 0);
 
-       bh = page_buffers(page);
-       for(;;) {
-               /* Find the beginning block within the page */
+       for (;;) {
+               /* Find the beginning block within the folio */
                if (pg_off >= ((bnum * bsize) + bsize)) {
                        bh = bh->b_this_page;
                        bnum++;
@@ -779,9 +779,10 @@ static int gfs2_write_buf_to_page(struct gfs2_sbd *sdp, unsigned long index,
                                goto unlock_out;
                        /* If it's a newly allocated disk block, zero it */
                        if (buffer_new(bh))
-                               zero_user(page, bnum * bsize, bh->b_size);
+                               folio_zero_range(folio, bnum * bsize,
+                                               bh->b_size);
                }
-               if (PageUptodate(page))
+               if (folio_test_uptodate(folio))
                        set_buffer_uptodate(bh);
                if (bh_read(bh, REQ_META | REQ_PRIO) < 0)
                        goto unlock_out;
@@ -797,17 +798,17 @@ static int gfs2_write_buf_to_page(struct gfs2_sbd *sdp, unsigned long index,
                break;
        }
 
-       /* Write to the page, now that we have setup the buffer(s) */
-       memcpy_to_page(page, off, buf, bytes);
-       flush_dcache_page(page);
-       unlock_page(page);
-       put_page(page);
+       /* Write to the folio, now that we have setup the buffer(s) */
+       memcpy_to_folio(folio, off, buf, bytes);
+       flush_dcache_folio(folio);
+       folio_unlock(folio);
+       folio_put(folio);
 
        return 0;
 
 unlock_out:
-       unlock_page(page);
-       put_page(page);
+       folio_unlock(folio);
+       folio_put(folio);
        return -EIO;
 }