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

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

index 19c8158605ed0d9c6a3d43dabc00926fb6eebd64..db2260d6e44d3f1fdd2079f27ffd7ca14b87b26c 100644 (file)
@@ -560,17 +560,19 @@ int nilfs_mdt_freeze_buffer(struct inode *inode, struct buffer_head *bh)
 {
        struct nilfs_shadow_map *shadow = NILFS_MDT(inode)->mi_shadow;
        struct buffer_head *bh_frozen;
-       struct page *page;
+       struct folio *folio;
        int blkbits = inode->i_blkbits;
 
-       page = grab_cache_page(shadow->inode->i_mapping, bh->b_folio->index);
-       if (!page)
-               return -ENOMEM;
+       folio = filemap_grab_folio(shadow->inode->i_mapping,
+                       bh->b_folio->index);
+       if (IS_ERR(folio))
+               return PTR_ERR(folio);
 
-       if (!page_has_buffers(page))
-               create_empty_buffers(page, 1 << blkbits, 0);
+       bh_frozen = folio_buffers(folio);
+       if (!bh_frozen)
+               bh_frozen = folio_create_empty_buffers(folio, 1 << blkbits, 0);
 
-       bh_frozen = nilfs_page_get_nth_block(page, bh_offset(bh) >> blkbits);
+       bh_frozen = get_nth_bh(bh_frozen, bh_offset(bh) >> blkbits);
 
        if (!buffer_uptodate(bh_frozen))
                nilfs_copy_buffer(bh_frozen, bh);
@@ -582,8 +584,8 @@ int nilfs_mdt_freeze_buffer(struct inode *inode, struct buffer_head *bh)
                brelse(bh_frozen); /* already frozen */
        }
 
-       unlock_page(page);
-       put_page(page);
+       folio_unlock(folio);
+       folio_put(folio);
        return 0;
 }