ubifs: Convert ubifs 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
124cfc154f
commit
0b7bf4830a
|
@ -31,9 +31,9 @@
|
|||
* in the "sys_write -> alloc_pages -> direct reclaim path". So, in
|
||||
* 'ubifs_writepage()' we are only guaranteed that the page is locked.
|
||||
*
|
||||
* Similarly, @i_mutex is not always locked in 'ubifs_readpage()', e.g., the
|
||||
* Similarly, @i_mutex is not always locked in 'ubifs_read_folio()', e.g., the
|
||||
* read-ahead path does not lock it ("sys_read -> generic_file_aio_read ->
|
||||
* ondemand_readahead -> readpage"). In case of readahead, @I_SYNC flag is not
|
||||
* ondemand_readahead -> read_folio"). In case of readahead, @I_SYNC flag is not
|
||||
* set as well. However, UBIFS disables readahead.
|
||||
*/
|
||||
|
||||
|
@ -889,12 +889,14 @@ static int ubifs_bulk_read(struct page *page)
|
|||
return err;
|
||||
}
|
||||
|
||||
static int ubifs_readpage(struct file *file, struct page *page)
|
||||
static int ubifs_read_folio(struct file *file, struct folio *folio)
|
||||
{
|
||||
struct page *page = &folio->page;
|
||||
|
||||
if (ubifs_bulk_read(page))
|
||||
return 0;
|
||||
do_readpage(page);
|
||||
unlock_page(page);
|
||||
folio_unlock(folio);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1641,7 +1643,7 @@ static int ubifs_symlink_getattr(struct user_namespace *mnt_userns,
|
|||
}
|
||||
|
||||
const struct address_space_operations ubifs_file_address_operations = {
|
||||
.readpage = ubifs_readpage,
|
||||
.read_folio = ubifs_read_folio,
|
||||
.writepage = ubifs_writepage,
|
||||
.write_begin = ubifs_write_begin,
|
||||
.write_end = ubifs_write_end,
|
||||
|
|
|
@ -2191,7 +2191,7 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent)
|
|||
|
||||
/*
|
||||
* UBIFS provides 'backing_dev_info' in order to disable read-ahead. For
|
||||
* UBIFS, I/O is not deferred, it is done immediately in readpage,
|
||||
* UBIFS, I/O is not deferred, it is done immediately in read_folio,
|
||||
* which means the user would have to wait not just for their own I/O
|
||||
* but the read-ahead I/O as well i.e. completely pointless.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue