forked from Minki/linux
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: Matthew Wilcox (Oracle) <willy@infradead.org>
This commit is contained in:
parent
a2e20a25a1
commit
fe5ddf6b21
@ -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,
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user