fs: Convert simple_readpage to simple_read_folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 29 Apr 2022 15:49:41 +0000 (11:49 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 9 May 2022 20:21:44 +0000 (16:21 -0400)
This is a full folio conversion; it is prepared to handle folios of
arbitrary size.

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

index a1c10d3..31b0ddf 100644 (file)
@@ -539,12 +539,12 @@ int simple_setattr(struct user_namespace *mnt_userns, struct dentry *dentry,
 }
 EXPORT_SYMBOL(simple_setattr);
 
-static int simple_readpage(struct file *file, struct page *page)
+static int simple_read_folio(struct file *file, struct folio *folio)
 {
-       clear_highpage(page);
-       flush_dcache_page(page);
-       SetPageUptodate(page);
-       unlock_page(page);
+       folio_zero_range(folio, 0, folio_size(folio));
+       flush_dcache_folio(folio);
+       folio_mark_uptodate(folio);
+       folio_unlock(folio);
        return 0;
 }
 
@@ -592,7 +592,7 @@ EXPORT_SYMBOL(simple_write_begin);
  * should extend on what's done here with a call to mark_inode_dirty() in the
  * case that i_size has changed.
  *
- * Use *ONLY* with simple_readpage()
+ * Use *ONLY* with simple_read_folio()
  */
 static int simple_write_end(struct file *file, struct address_space *mapping,
                        loff_t pos, unsigned len, unsigned copied,
@@ -628,7 +628,7 @@ static int simple_write_end(struct file *file, struct address_space *mapping,
  * Provides ramfs-style behavior: data in the pagecache, but no writeback.
  */
 const struct address_space_operations ram_aops = {
-       .readpage       = simple_readpage,
+       .read_folio     = simple_read_folio,
        .write_begin    = simple_write_begin,
        .write_end      = simple_write_end,
        .dirty_folio    = noop_dirty_folio,