ubifs: Convert ubifs 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:46 +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/ubifs/file.c
fs/ubifs/super.c

index 81c085c..7cbf2ed 100644 (file)
@@ -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 @@ out_unlock:
        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,
index bad6745..0978d01 100644 (file)
@@ -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.
         *