Commit fe5ddf6b authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle)
Browse files

ext4: Convert ext4 to read_folio



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: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
parent a2e20a25
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -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,
+2 −2
Original line number Diff line number Diff line
@@ -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 */