All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-fsdevel@vger.kernel.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Subject: [PATCH 06/37] fs: Convert mpage_readpage to mpage_read_folio
Date: Sun,  8 May 2022 21:31:00 +0100	[thread overview]
Message-ID: <20220508203131.667959-7-willy@infradead.org> (raw)
In-Reply-To: <20220508203131.667959-1-willy@infradead.org>

mpage_readpage still works in terms of pages, and has not been audited
for correctness with large folios, so include an assertion that the
filesystem is not passing it large folios.  Convert all the filesystems
to call mpage_read_folio() instead of mpage_readpage().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/exfat/inode.c       |  6 +++---
 fs/ext2/inode.c        |  8 ++++----
 fs/fat/inode.c         |  6 +++---
 fs/gfs2/aops.c         | 15 +++++++--------
 fs/hpfs/file.c         |  6 +++---
 fs/iomap/buffered-io.c |  2 +-
 fs/isofs/inode.c       |  6 +++---
 fs/jfs/inode.c         |  6 +++---
 fs/mpage.c             |  8 +++++---
 fs/nilfs2/inode.c      | 10 +++++-----
 fs/ntfs3/inode.c       |  9 +++++----
 fs/qnx6/inode.c        |  6 +++---
 fs/udf/inode.c         |  6 +++---
 include/linux/mpage.h  |  2 +-
 14 files changed, 49 insertions(+), 47 deletions(-)

diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c
index b9f63113db2d..0133d385d8e8 100644
--- a/fs/exfat/inode.c
+++ b/fs/exfat/inode.c
@@ -357,9 +357,9 @@ static int exfat_get_block(struct inode *inode, sector_t iblock,
 	return err;
 }
 
-static int exfat_readpage(struct file *file, struct page *page)
+static int exfat_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, exfat_get_block);
+	return mpage_read_folio(folio, exfat_get_block);
 }
 
 static void exfat_readahead(struct readahead_control *rac)
@@ -492,7 +492,7 @@ int exfat_block_truncate_page(struct inode *inode, loff_t from)
 static const struct address_space_operations exfat_aops = {
 	.dirty_folio	= block_dirty_folio,
 	.invalidate_folio = block_invalidate_folio,
-	.readpage	= exfat_readpage,
+	.read_folio	= exfat_read_folio,
 	.readahead	= exfat_readahead,
 	.writepage	= exfat_writepage,
 	.writepages	= exfat_writepages,
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index d8ca8050945a..9e1ecd89f47f 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -875,9 +875,9 @@ static int ext2_writepage(struct page *page, struct writeback_control *wbc)
 	return block_write_full_page(page, ext2_get_block, wbc);
 }
 
-static int ext2_readpage(struct file *file, struct page *page)
+static int ext2_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, ext2_get_block);
+	return mpage_read_folio(folio, ext2_get_block);
 }
 
 static void ext2_readahead(struct readahead_control *rac)
@@ -966,7 +966,7 @@ ext2_dax_writepages(struct address_space *mapping, struct writeback_control *wbc
 const struct address_space_operations ext2_aops = {
 	.dirty_folio		= block_dirty_folio,
 	.invalidate_folio	= block_invalidate_folio,
-	.readpage		= ext2_readpage,
+	.read_folio		= ext2_read_folio,
 	.readahead		= ext2_readahead,
 	.writepage		= ext2_writepage,
 	.write_begin		= ext2_write_begin,
@@ -982,7 +982,7 @@ const struct address_space_operations ext2_aops = {
 const struct address_space_operations ext2_nobh_aops = {
 	.dirty_folio		= block_dirty_folio,
 	.invalidate_folio	= block_invalidate_folio,
-	.readpage		= ext2_readpage,
+	.read_folio		= ext2_read_folio,
 	.readahead		= ext2_readahead,
 	.writepage		= ext2_nobh_writepage,
 	.write_begin		= ext2_nobh_write_begin,
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index 1f15b0fd1bb0..8a81017f8d60 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -205,9 +205,9 @@ static int fat_writepages(struct address_space *mapping,
 	return mpage_writepages(mapping, wbc, fat_get_block);
 }
 
-static int fat_readpage(struct file *file, struct page *page)
+static int fat_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, fat_get_block);
+	return mpage_read_folio(folio, fat_get_block);
 }
 
 static void fat_readahead(struct readahead_control *rac)
@@ -344,7 +344,7 @@ int fat_block_truncate_page(struct inode *inode, loff_t from)
 static const struct address_space_operations fat_aops = {
 	.dirty_folio	= block_dirty_folio,
 	.invalidate_folio = block_invalidate_folio,
-	.readpage	= fat_readpage,
+	.read_folio	= fat_read_folio,
 	.readahead	= fat_readahead,
 	.writepage	= fat_writepage,
 	.writepages	= fat_writepages,
diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
index a29eb1e5bfe2..340bf5d0e835 100644
--- a/fs/gfs2/aops.c
+++ b/fs/gfs2/aops.c
@@ -480,7 +480,7 @@ static int __gfs2_readpage(void *file, struct page *page)
 		error = stuffed_readpage(ip, page);
 		unlock_page(page);
 	} else {
-		error = mpage_readpage(page, gfs2_block_map);
+		error = mpage_read_folio(folio, gfs2_block_map);
 	}
 
 	if (unlikely(gfs2_withdrawn(sdp)))
@@ -490,14 +490,13 @@ static int __gfs2_readpage(void *file, struct page *page)
 }
 
 /**
- * gfs2_readpage - read a page of a file
+ * gfs2_read_folio - read a folio from a file
  * @file: The file to read
- * @page: The page of the file
+ * @folio: The folio in the file
  */
-
-static int gfs2_readpage(struct file *file, struct page *page)
+static int gfs2_read_folio(struct file *file, struct folio *folio)
 {
-	return __gfs2_readpage(file, page);
+	return __gfs2_readpage(file, &folio->page);
 }
 
 /**
@@ -773,7 +772,7 @@ int gfs2_releasepage(struct page *page, gfp_t gfp_mask)
 static const struct address_space_operations gfs2_aops = {
 	.writepage = gfs2_writepage,
 	.writepages = gfs2_writepages,
-	.readpage = gfs2_readpage,
+	.read_folio = gfs2_read_folio,
 	.readahead = gfs2_readahead,
 	.dirty_folio = filemap_dirty_folio,
 	.releasepage = iomap_releasepage,
@@ -788,7 +787,7 @@ static const struct address_space_operations gfs2_aops = {
 static const struct address_space_operations gfs2_jdata_aops = {
 	.writepage = gfs2_jdata_writepage,
 	.writepages = gfs2_jdata_writepages,
-	.readpage = gfs2_readpage,
+	.read_folio = gfs2_read_folio,
 	.readahead = gfs2_readahead,
 	.dirty_folio = jdata_dirty_folio,
 	.bmap = gfs2_bmap,
diff --git a/fs/hpfs/file.c b/fs/hpfs/file.c
index 8b590b3826c3..f7547a62c81f 100644
--- a/fs/hpfs/file.c
+++ b/fs/hpfs/file.c
@@ -158,9 +158,9 @@ static const struct iomap_ops hpfs_iomap_ops = {
 	.iomap_begin		= hpfs_iomap_begin,
 };
 
-static int hpfs_readpage(struct file *file, struct page *page)
+static int hpfs_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, hpfs_get_block);
+	return mpage_read_folio(folio, hpfs_get_block);
 }
 
 static int hpfs_writepage(struct page *page, struct writeback_control *wbc)
@@ -247,7 +247,7 @@ static int hpfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 const struct address_space_operations hpfs_aops = {
 	.dirty_folio	= block_dirty_folio,
 	.invalidate_folio = block_invalidate_folio,
-	.readpage = hpfs_readpage,
+	.read_folio = hpfs_read_folio,
 	.writepage = hpfs_writepage,
 	.readahead = hpfs_readahead,
 	.writepages = hpfs_writepages,
diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
index 75eb0c27a0e8..2de087ac87b6 100644
--- a/fs/iomap/buffered-io.c
+++ b/fs/iomap/buffered-io.c
@@ -297,7 +297,7 @@ static loff_t iomap_readpage_iter(const struct iomap_iter *iter,
 		/*
 		 * If the bio_alloc fails, try it again for a single page to
 		 * avoid having to deal with partial page reads.  This emulates
-		 * what do_mpage_readpage does.
+		 * what do_mpage_read_folio does.
 		 */
 		if (!ctx->bio) {
 			ctx->bio = bio_alloc(iomap->bdev, 1, REQ_OP_READ,
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
index d7491692aea3..88bf20303466 100644
--- a/fs/isofs/inode.c
+++ b/fs/isofs/inode.c
@@ -1174,9 +1174,9 @@ struct buffer_head *isofs_bread(struct inode *inode, sector_t block)
 	return sb_bread(inode->i_sb, blknr);
 }
 
-static int isofs_readpage(struct file *file, struct page *page)
+static int isofs_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, isofs_get_block);
+	return mpage_read_folio(folio, isofs_get_block);
 }
 
 static void isofs_readahead(struct readahead_control *rac)
@@ -1190,7 +1190,7 @@ static sector_t _isofs_bmap(struct address_space *mapping, sector_t block)
 }
 
 static const struct address_space_operations isofs_aops = {
-	.readpage = isofs_readpage,
+	.read_folio = isofs_read_folio,
 	.readahead = isofs_readahead,
 	.bmap = _isofs_bmap
 };
diff --git a/fs/jfs/inode.c b/fs/jfs/inode.c
index aa9f112107b2..a5dd7e53754a 100644
--- a/fs/jfs/inode.c
+++ b/fs/jfs/inode.c
@@ -293,9 +293,9 @@ static int jfs_writepages(struct address_space *mapping,
 	return mpage_writepages(mapping, wbc, jfs_get_block);
 }
 
-static int jfs_readpage(struct file *file, struct page *page)
+static int jfs_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, jfs_get_block);
+	return mpage_read_folio(folio, jfs_get_block);
 }
 
 static void jfs_readahead(struct readahead_control *rac)
@@ -359,7 +359,7 @@ static ssize_t jfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
 const struct address_space_operations jfs_aops = {
 	.dirty_folio	= block_dirty_folio,
 	.invalidate_folio = block_invalidate_folio,
-	.readpage	= jfs_readpage,
+	.read_folio	= jfs_read_folio,
 	.readahead	= jfs_readahead,
 	.writepage	= jfs_writepage,
 	.writepages	= jfs_writepages,
diff --git a/fs/mpage.c b/fs/mpage.c
index a04439b84ae2..6df9c3aa5728 100644
--- a/fs/mpage.c
+++ b/fs/mpage.c
@@ -364,20 +364,22 @@ EXPORT_SYMBOL(mpage_readahead);
 /*
  * This isn't called much at all
  */
-int mpage_readpage(struct page *page, get_block_t get_block)
+int mpage_read_folio(struct folio *folio, get_block_t get_block)
 {
 	struct mpage_readpage_args args = {
-		.page = page,
+		.page = &folio->page,
 		.nr_pages = 1,
 		.get_block = get_block,
 	};
 
+	VM_BUG_ON_FOLIO(folio_test_large(folio), folio);
+
 	args.bio = do_mpage_readpage(&args);
 	if (args.bio)
 		mpage_bio_submit(args.bio);
 	return 0;
 }
-EXPORT_SYMBOL(mpage_readpage);
+EXPORT_SYMBOL(mpage_read_folio);
 
 /*
  * Writing is not so simple.
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c
index 02297ec8dc55..26b8065401b0 100644
--- a/fs/nilfs2/inode.c
+++ b/fs/nilfs2/inode.c
@@ -140,14 +140,14 @@ int nilfs_get_block(struct inode *inode, sector_t blkoff,
 }
 
 /**
- * nilfs_readpage() - implement readpage() method of nilfs_aops {}
+ * nilfs_read_folio() - implement read_folio() method of nilfs_aops {}
  * address_space_operations.
  * @file - file struct of the file to be read
- * @page - the page to be read
+ * @folio - the folio to be read
  */
-static int nilfs_readpage(struct file *file, struct page *page)
+static int nilfs_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, nilfs_get_block);
+	return mpage_read_folio(folio, nilfs_get_block);
 }
 
 static void nilfs_readahead(struct readahead_control *rac)
@@ -298,7 +298,7 @@ nilfs_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
 
 const struct address_space_operations nilfs_aops = {
 	.writepage		= nilfs_writepage,
-	.readpage		= nilfs_readpage,
+	.read_folio		= nilfs_read_folio,
 	.writepages		= nilfs_writepages,
 	.dirty_folio		= nilfs_dirty_folio,
 	.readahead		= nilfs_readahead,
diff --git a/fs/ntfs3/inode.c b/fs/ntfs3/inode.c
index bfd71f384e21..74f60c457f28 100644
--- a/fs/ntfs3/inode.c
+++ b/fs/ntfs3/inode.c
@@ -676,8 +676,9 @@ static sector_t ntfs_bmap(struct address_space *mapping, sector_t block)
 	return generic_block_bmap(mapping, block, ntfs_get_block_bmap);
 }
 
-static int ntfs_readpage(struct file *file, struct page *page)
+static int ntfs_read_folio(struct file *file, struct folio *folio)
 {
+	struct page *page = &folio->page;
 	int err;
 	struct address_space *mapping = page->mapping;
 	struct inode *inode = mapping->host;
@@ -701,7 +702,7 @@ static int ntfs_readpage(struct file *file, struct page *page)
 	}
 
 	/* Normal + sparse files. */
-	return mpage_readpage(page, ntfs_get_block);
+	return mpage_read_folio(folio, ntfs_get_block);
 }
 
 static void ntfs_readahead(struct readahead_control *rac)
@@ -1940,7 +1941,7 @@ const struct inode_operations ntfs_link_inode_operations = {
 };
 
 const struct address_space_operations ntfs_aops = {
-	.readpage	= ntfs_readpage,
+	.read_folio	= ntfs_read_folio,
 	.readahead	= ntfs_readahead,
 	.writepage	= ntfs_writepage,
 	.writepages	= ntfs_writepages,
@@ -1952,7 +1953,7 @@ const struct address_space_operations ntfs_aops = {
 };
 
 const struct address_space_operations ntfs_aops_cmpr = {
-	.readpage	= ntfs_readpage,
+	.read_folio	= ntfs_read_folio,
 	.readahead	= ntfs_readahead,
 };
 // clang-format on
diff --git a/fs/qnx6/inode.c b/fs/qnx6/inode.c
index 9d8e7e9788a1..b9895afca9d1 100644
--- a/fs/qnx6/inode.c
+++ b/fs/qnx6/inode.c
@@ -94,9 +94,9 @@ static int qnx6_check_blockptr(__fs32 ptr)
 	return 1;
 }
 
-static int qnx6_readpage(struct file *file, struct page *page)
+static int qnx6_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, qnx6_get_block);
+	return mpage_read_folio(folio, qnx6_get_block);
 }
 
 static void qnx6_readahead(struct readahead_control *rac)
@@ -496,7 +496,7 @@ static sector_t qnx6_bmap(struct address_space *mapping, sector_t block)
 	return generic_block_bmap(mapping, block, qnx6_get_block);
 }
 static const struct address_space_operations qnx6_aops = {
-	.readpage	= qnx6_readpage,
+	.read_folio	= qnx6_read_folio,
 	.readahead	= qnx6_readahead,
 	.bmap		= qnx6_bmap
 };
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 866f9a53248e..edc88716751a 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -193,9 +193,9 @@ static int udf_writepages(struct address_space *mapping,
 	return mpage_writepages(mapping, wbc, udf_get_block);
 }
 
-static int udf_readpage(struct file *file, struct page *page)
+static int udf_read_folio(struct file *file, struct folio *folio)
 {
-	return mpage_readpage(page, udf_get_block);
+	return mpage_read_folio(folio, udf_get_block);
 }
 
 static void udf_readahead(struct readahead_control *rac)
@@ -237,7 +237,7 @@ static sector_t udf_bmap(struct address_space *mapping, sector_t block)
 const struct address_space_operations udf_aops = {
 	.dirty_folio	= block_dirty_folio,
 	.invalidate_folio = block_invalidate_folio,
-	.readpage	= udf_readpage,
+	.read_folio	= udf_read_folio,
 	.readahead	= udf_readahead,
 	.writepage	= udf_writepage,
 	.writepages	= udf_writepages,
diff --git a/include/linux/mpage.h b/include/linux/mpage.h
index f4f5e90a6844..43986f7ec4dd 100644
--- a/include/linux/mpage.h
+++ b/include/linux/mpage.h
@@ -16,7 +16,7 @@ struct writeback_control;
 struct readahead_control;
 
 void mpage_readahead(struct readahead_control *, get_block_t get_block);
-int mpage_readpage(struct page *page, get_block_t get_block);
+int mpage_read_folio(struct folio *folio, get_block_t get_block);
 int mpage_writepages(struct address_space *mapping,
 		struct writeback_control *wbc, get_block_t get_block);
 int mpage_writepage(struct page *page, get_block_t *get_block,
-- 
2.34.1


  parent reply	other threads:[~2022-05-08 20:32 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-08 19:33 [GIT UPDATE] pagecache tree Matthew Wilcox
2022-05-08 20:28 ` [PATCH] Appoint myself page cache maintainer Matthew Wilcox (Oracle)
2022-05-08 23:16   ` Dave Chinner
2022-05-09  1:05     ` Darrick J. Wong
2022-05-09 10:28     ` Jeff Layton
2022-05-11 13:34   ` Christian Brauner
2022-05-12 13:48   ` Vlastimil Babka
2022-05-08 20:28 ` [PATCH] scsicam: Fix use of page cache Matthew Wilcox (Oracle)
2022-05-08 20:29 ` [PATCH 00/25] Remove AOP flags (and related cleanups) Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 01/25] ext4: Use page_symlink() instead of __page_symlink() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 02/25] namei: Merge page_symlink() and __page_symlink() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 03/25] namei: Convert page_symlink() to use memalloc_nofs_save() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 04/25] f2fs: Convert f2fs_grab_cache_page() to use scoped memory APIs Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 05/25] ext4: Allow GFP_FS allocations in ext4_da_convert_inline_data_to_extent() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 06/25] ext4: Use scoped memory API in mext_page_double_lock() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 07/25] ext4: Use scoped memory APIs in ext4_da_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 08/25] ext4: Use scoped memory APIs in ext4_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 09/25] fs: Remove AOP_FLAG_NOFS Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 10/25] fs: Remove aop_flags parameter from netfs_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 11/25] fs: Remove aop flags parameter from block_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 12/25] fs: Remove aop flags parameter from cont_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 13/25] fs: Remove aop flags parameter from grab_cache_page_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 14/25] fs: Remove aop flags parameter from nobh_write_begin() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 15/25] fs: Remove flags parameter from aops->write_begin Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 16/25] buffer: Call aops write_begin() and write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 17/25] namei: " Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 18/25] ntfs3: Call ntfs_write_begin() and ntfs_write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 19/25] ntfs3: Remove fsdata parameter from ntfs_extend_initialized_size() Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 20/25] hfs: Call hfs_write_begin() and generic_write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 21/25] hfsplus: Call hfsplus_write_begin() " Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 22/25] ext4: Call aops write_begin() and write_end() directly Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 23/25] f2fs: " Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 24/25] i915: " Matthew Wilcox (Oracle)
2022-05-08 20:29   ` [PATCH 25/25] fs: Remove pagecache_write_begin() and pagecache_write_end() Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 0/3] Pagecache documentation updates Matthew Wilcox (Oracle)
2022-05-08 20:30   ` [PATCH 1/3] filemap: Remove obsolete comment in lock_page Matthew Wilcox (Oracle)
2022-05-09  3:21     ` Miaohe Lin
2022-05-08 20:30   ` [PATCH 2/3] filemap: Update the folio_lock documentation Matthew Wilcox (Oracle)
2022-05-08 20:30   ` [PATCH 3/3] filemap: Update the folio_mark_dirty documentation Matthew Wilcox (Oracle)
2022-05-08 20:30 ` [PATCH 00/37] Convert aops->read_page to aops->read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30   ` [PATCH 01/37] fs: Introduce aops->read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30   ` [PATCH 02/37] fs: Add read_folio documentation Matthew Wilcox (Oracle)
2022-05-08 20:30   ` [PATCH 03/37] fs: Convert netfs_readpage to netfs_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30   ` [PATCH 04/37] fs: Convert iomap_readpage to iomap_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:30   ` [PATCH 05/37] fs: Convert block_read_full_page() to block_read_full_folio() Matthew Wilcox (Oracle)
2022-05-08 20:31   ` Matthew Wilcox (Oracle) [this message]
2022-05-08 20:31   ` [PATCH 07/37] fs: Convert simple_readpage to simple_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 08/37] affs: Convert affs to read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 09/37] afs: Convert afs_symlink_readpage to afs_symlink_read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 10/37] befs: Convert befs to read_folio Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 11/37] btrfs: Convert btrfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 12/37] cifs: Convert cifs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 13/37] coda: Convert coda " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 14/37] cramfs: Convert cramfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 15/37] ecryptfs: Convert ecryptfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 16/37] efs: Convert efs symlinks " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 17/37] erofs: Convert erofs zdata " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 18/37] ext4: Convert ext4 " Matthew Wilcox (Oracle)
2022-05-09 13:30     ` Theodore Ts'o
2022-05-09 14:07       ` Matthew Wilcox
2022-05-09 20:16         ` Theodore Ts'o
2022-05-09 21:07           ` Matthew Wilcox
2022-05-08 20:31   ` [PATCH 19/37] f2fs: Convert f2fs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 20/37] freevxfs: Convert vxfs_immed " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 21/37] fuse: Convert fuse " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 22/37] hostfs: Convert hostfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 23/37] hpfs: Convert symlinks " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 24/37] isofs: Convert symlinks and zisofs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 25/37] jffs2: Convert jffs2 " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 26/37] jfs: Convert metadata pages " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 27/37] nfs: Convert nfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 28/37] ntfs: Convert ntfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 29/37] ocfs2: Convert ocfs2 " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 30/37] orangefs: Convert orangefs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 31/37] romfs: Convert romfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 32/37] squashfs: Convert squashfs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 33/37] ubifs: Convert ubifs " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 34/37] udf: Convert adinicb and symlinks " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 35/37] vboxsf: Convert vboxsf " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 36/37] mm: Convert swap_readpage to call read_folio instead of readpage Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 37/37] mm,fs: Remove aops->readpage Matthew Wilcox (Oracle)
2022-05-08 20:31 ` [PATCH 0/4] Miscellaneous folio conversions Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 1/4] readahead: Use a folio in read_pages() Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 2/4] fs: Convert is_dirty_writeback() to take a folio Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 3/4] mm/readahead: Convert page_cache_async_readahead " Matthew Wilcox (Oracle)
2022-05-08 20:31   ` [PATCH 4/4] buffer: Rewrite nobh_truncate_page() to use folios Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 00/26] Convert aops->releasepage to aops->release_folio Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 01/26] fs: Add aops->release_folio Matthew Wilcox (Oracle)
2022-05-09 10:33     ` Jeff Layton
2022-05-09 12:23       ` Matthew Wilcox
2022-05-08 20:32   ` [PATCH 02/26] iomap: Convert to release_folio Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 03/26] 9p: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 04/26] afs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 05/26] btrfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 06/26] ceph: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 07/26] cifs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 08/26] erofs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 09/26] ext4: " Matthew Wilcox (Oracle)
2022-05-09 13:14     ` Theodore Ts'o
2022-05-08 20:32   ` [PATCH 10/26] f2fs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 11/26] gfs2: " Matthew Wilcox (Oracle)
2022-05-09 12:24     ` Bob Peterson
2022-05-08 20:32   ` [PATCH 12/26] hfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 13/26] hfsplus: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 14/26] jfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 15/26] nfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 16/26] nilfs2: Remove comment about releasepage Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 17/26] ocfs2: Convert to release_folio Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 18/26] orangefs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 19/26] reiserfs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 20/26] ubifs: " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 21/26] fs: Remove last vestiges of releasepage Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 22/26] reiserfs: Convert release_buffer_page() to use a folio Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 23/26] jbd2: Convert jbd2_journal_try_to_free_buffers to take " Matthew Wilcox (Oracle)
2022-05-09 13:17     ` Theodore Ts'o
2022-05-08 20:32   ` [PATCH 24/26] jbd2: Convert release_buffer_page() to use " Matthew Wilcox (Oracle)
2022-05-09 13:23     ` Theodore Ts'o
2022-05-09 13:48       ` Matthew Wilcox
2022-05-08 20:32   ` [PATCH 25/26] fs: Change try_to_free_buffers() to take " Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 26/26] fs: Convert drop_buffers() to use " Matthew Wilcox (Oracle)
2022-05-09 10:34   ` [PATCH 00/26] Convert aops->releasepage to aops->release_folio Jeff Layton
2022-05-08 20:32 ` [PATCH 0/4] Unify filler_t and aops->read_folio Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 1/4] jffs2: Pass the file pointer to jffs2_do_readpage_unlock() Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 2/4] nfs: Pass the file pointer to nfs_symlink_filler() Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 3/4] fs: Change the type of filler_t Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 4/4] mm/filemap: Hoist filler_t decision to the top of do_read_cache_folio() Matthew Wilcox (Oracle)
2022-05-08 20:32 ` [PATCH 0/5] Convert aops->freepage to aops->free_folio Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 1/5] fs: Add free_folio address space operation Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 2/5] orangefs: Convert to free_folio Matthew Wilcox (Oracle)
2022-05-08 20:32   ` [PATCH 3/5] nfs: " Matthew Wilcox (Oracle)
2022-05-08 20:33   ` [PATCH 4/5] secretmem: " Matthew Wilcox (Oracle)
2022-05-08 20:33   ` [PATCH 5/5] fs: Remove aops->freepage Matthew Wilcox (Oracle)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220508203131.667959-7-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.