ext4: Convert ext4 to read_folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 29 Apr 2022 15:12:16 +0000 (11:12 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 9 May 2022 20:21:45 +0000 (16:21 -0400)
This is a "weak" conversion which converts straight back to using pages.
A full conversion should be performed at some point, hopefully by
someone familiar with the filesystem.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
fs/ext4/inode.c
fs/ext4/move_extent.c

index d3a7e85..c6b8cb4 100644 (file)
@@ -3180,8 +3180,9 @@ static sector_t ext4_bmap(struct address_space *mapping, sector_t block)
        return iomap_bmap(mapping, block, &ext4_iomap_ops);
 }
 
-static int ext4_readpage(struct file *file, struct page *page)
+static int ext4_read_folio(struct file *file, struct folio *folio)
 {
+       struct page *page = &folio->page;
        int ret = -EAGAIN;
        struct inode *inode = page->mapping->host;
 
@@ -3608,7 +3609,7 @@ static int ext4_iomap_swap_activate(struct swap_info_struct *sis,
 }
 
 static const struct address_space_operations ext4_aops = {
-       .readpage               = ext4_readpage,
+       .read_folio             = ext4_read_folio,
        .readahead              = ext4_readahead,
        .writepage              = ext4_writepage,
        .writepages             = ext4_writepages,
@@ -3626,7 +3627,7 @@ static const struct address_space_operations ext4_aops = {
 };
 
 static const struct address_space_operations ext4_journalled_aops = {
-       .readpage               = ext4_readpage,
+       .read_folio             = ext4_read_folio,
        .readahead              = ext4_readahead,
        .writepage              = ext4_writepage,
        .writepages             = ext4_writepages,
@@ -3643,7 +3644,7 @@ static const struct address_space_operations ext4_journalled_aops = {
 };
 
 static const struct address_space_operations ext4_da_aops = {
-       .readpage               = ext4_readpage,
+       .read_folio             = ext4_read_folio,
        .readahead              = ext4_readahead,
        .writepage              = ext4_writepage,
        .writepages             = ext4_writepages,
index 4172a7d..701f1d6 100644 (file)
@@ -669,8 +669,8 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp, __u64 orig_blk,
                 * Up semaphore to avoid following problems:
                 * a. transaction deadlock among ext4_journal_start,
                 *    ->write_begin via pagefault, and jbd2_journal_commit
-                * b. racing with ->readpage, ->write_begin, and ext4_get_block
-                *    in move_extent_per_page
+                * b. racing with ->read_folio, ->write_begin, and
+                *    ext4_get_block in move_extent_per_page
                 */
                ext4_double_up_write_data_sem(orig_inode, donor_inode);
                /* Swap original branches with new branches */