linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
* [f2fs-dev] [PATCH 00/11] f2fs folio patches
@ 2024-11-28  4:58 Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 01/11] f2fs: Use a folio in f2fs_all_cluster_page_ready() Matthew Wilcox (Oracle)
                   ` (13 more replies)
  0 siblings, 14 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

This round of f2fs patches accomplishes two things:

 - Removal of all references to page->index in f2fs.  I'm looking to
   finish this conversion in the January merge window.
 - Removal of all calls to page_file_mapping() and folio_file_mapping()

I have only compile-tested these patches.

Matthew Wilcox (Oracle) (11):
  f2fs: Use a folio in f2fs_all_cluster_page_ready()
  f2fs: Use a folio in f2fs_compress_write_end()
  f2fs: Use a folio in f2fs_truncate_partial_cluster()
  f2fs: Use a folio in f2fs_write_compressed_pages()
  f2fs: Convert submit tracepoints to take a folio
  f2fs: Add F2FS_F_SB()
  f2fs: Convert f2fs_finish_read_bio() to use folios
  f2fs: Use a folio more in f2fs_submit_page_bio()
  f2fs: Use a data folio in f2fs_submit_page_bio()
  f2fs: Convert __read_io_type() to take a folio
  f2fs: Remove calls to folio_file_mapping()

 fs/f2fs/compress.c          | 28 ++++++++++++--------
 fs/f2fs/data.c              | 53 +++++++++++++++----------------------
 fs/f2fs/f2fs.h              |  7 ++++-
 fs/f2fs/inline.c            |  2 +-
 include/trace/events/f2fs.h | 39 +++++++++++++--------------
 5 files changed, 65 insertions(+), 64 deletions(-)

-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 01/11] f2fs: Use a folio in f2fs_all_cluster_page_ready()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 02/11] f2fs: Use a folio in f2fs_compress_write_end() Matthew Wilcox (Oracle)
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Remove references to page->index and use folio_test_uptodate()
instead of PageUptodate().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/compress.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 7f26440e8595..9f8d0f4c8564 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -846,7 +846,7 @@ bool f2fs_cluster_can_merge_page(struct compress_ctx *cc, pgoff_t index)
 bool f2fs_all_cluster_page_ready(struct compress_ctx *cc, struct page **pages,
 				int index, int nr_pages, bool uptodate)
 {
-	unsigned long pgidx = pages[index]->index;
+	unsigned long pgidx = page_folio(pages[index])->index;
 	int i = uptodate ? 0 : 1;
 
 	/*
@@ -860,9 +860,11 @@ bool f2fs_all_cluster_page_ready(struct compress_ctx *cc, struct page **pages,
 		return false;
 
 	for (; i < cc->cluster_size; i++) {
-		if (pages[index + i]->index != pgidx + i)
+		struct folio *folio = page_folio(pages[index + i]);
+
+		if (folio->index != pgidx + i)
 			return false;
-		if (uptodate && !PageUptodate(pages[index + i]))
+		if (uptodate && !folio_test_uptodate(folio))
 			return false;
 	}
 
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 02/11] f2fs: Use a folio in f2fs_compress_write_end()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 01/11] f2fs: Use a folio in f2fs_all_cluster_page_ready() Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 03/11] f2fs: Use a folio in f2fs_truncate_partial_cluster() Matthew Wilcox (Oracle)
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

This removes an access of page->index.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/compress.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 9f8d0f4c8564..c91a2e4fe60c 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1197,7 +1197,8 @@ bool f2fs_compress_write_end(struct inode *inode, void *fsdata,
 		.cluster_size = F2FS_I(inode)->i_cluster_size,
 		.rpages = fsdata,
 	};
-	bool first_index = (index == cc.rpages[0]->index);
+	struct folio *folio = page_folio(cc.rpages[0]);
+	bool first_index = (index == folio->index);
 
 	if (copied)
 		set_cluster_dirty(&cc);
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 03/11] f2fs: Use a folio in f2fs_truncate_partial_cluster()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 01/11] f2fs: Use a folio in f2fs_all_cluster_page_ready() Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 02/11] f2fs: Use a folio in f2fs_compress_write_end() Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 04/11] f2fs: Use a folio in f2fs_write_compressed_pages() Matthew Wilcox (Oracle)
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Convert the incoming page to a folio and use it throughout.
Removes an access to page->index.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/compress.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index c91a2e4fe60c..494baa1e8bd3 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1242,13 +1242,14 @@ int f2fs_truncate_partial_cluster(struct inode *inode, u64 from, bool lock)
 		int i;
 
 		for (i = cluster_size - 1; i >= 0; i--) {
-			loff_t start = rpages[i]->index << PAGE_SHIFT;
+			struct folio *folio = page_folio(rpages[i]);
+			loff_t start = folio->index << PAGE_SHIFT;
 
 			if (from <= start) {
-				zero_user_segment(rpages[i], 0, PAGE_SIZE);
+				folio_zero_segment(folio, 0, folio_size(folio));
 			} else {
-				zero_user_segment(rpages[i], from - start,
-								PAGE_SIZE);
+				folio_zero_segment(folio, from - start,
+						folio_size(folio));
 				break;
 			}
 		}
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 04/11] f2fs: Use a folio in f2fs_write_compressed_pages()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (2 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 03/11] f2fs: Use a folio in f2fs_truncate_partial_cluster() Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 05/11] f2fs: Convert submit tracepoints to take a folio Matthew Wilcox (Oracle)
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Remove accesses to page->index and an unnecessary reference to
page->mapping.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/compress.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c
index 494baa1e8bd3..0b55b2695c9b 100644
--- a/fs/f2fs/compress.c
+++ b/fs/f2fs/compress.c
@@ -1282,6 +1282,7 @@ static int f2fs_write_compressed_pages(struct compress_ctx *cc,
 		.encrypted = fscrypt_inode_uses_fs_layer_crypto(cc->inode) ?
 									1 : 0,
 	};
+	struct folio *folio;
 	struct dnode_of_data dn;
 	struct node_info ni;
 	struct compress_io_ctx *cic;
@@ -1293,7 +1294,7 @@ static int f2fs_write_compressed_pages(struct compress_ctx *cc,
 
 	/* we should bypass data pages to proceed the kworker jobs */
 	if (unlikely(f2fs_cp_error(sbi))) {
-		mapping_set_error(cc->rpages[0]->mapping, -EIO);
+		mapping_set_error(inode->i_mapping, -EIO);
 		goto out_free;
 	}
 
@@ -1320,7 +1321,8 @@ static int f2fs_write_compressed_pages(struct compress_ctx *cc,
 			goto out_put_dnode;
 	}
 
-	psize = (loff_t)(cc->rpages[last_index]->index + 1) << PAGE_SHIFT;
+	folio = page_folio(cc->rpages[last_index]);
+	psize = folio_pos(folio) + folio_size(folio);
 
 	err = f2fs_get_node_info(fio.sbi, dn.nid, &ni, false);
 	if (err)
@@ -1343,7 +1345,7 @@ static int f2fs_write_compressed_pages(struct compress_ctx *cc,
 
 	for (i = 0; i < cc->valid_nr_cpages; i++) {
 		f2fs_set_compressed_page(cc->cpages[i], inode,
-					cc->rpages[i + 1]->index, cic);
+				page_folio(cc->rpages[i + 1])->index, cic);
 		fio.compressed_page = cc->cpages[i];
 
 		fio.old_blkaddr = data_blkaddr(dn.inode, dn.node_page,
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 05/11] f2fs: Convert submit tracepoints to take a folio
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (3 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 04/11] f2fs: Use a folio in f2fs_write_compressed_pages() Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 06/11] f2fs: Add F2FS_F_SB() Matthew Wilcox (Oracle)
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Remove accesses to page->index and page->mapping as well as
unnecessary calls to page_file_mapping().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/data.c              |  6 +++---
 include/trace/events/f2fs.h | 30 +++++++++++++++---------------
 2 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index a2478c2afb3a..7cb2272c723e 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -697,7 +697,7 @@ int f2fs_submit_page_bio(struct f2fs_io_info *fio)
 			META_GENERIC : DATA_GENERIC_ENHANCE)))
 		return -EFSCORRUPTED;
 
-	trace_f2fs_submit_page_bio(page, fio);
+	trace_f2fs_submit_folio_bio(page_folio(page), fio);
 
 	/* Allocate a new bio */
 	bio = __bio_alloc(fio, 1);
@@ -894,7 +894,7 @@ int f2fs_merge_page_bio(struct f2fs_io_info *fio)
 			__is_meta_io(fio) ? META_GENERIC : DATA_GENERIC))
 		return -EFSCORRUPTED;
 
-	trace_f2fs_submit_page_bio(page, fio);
+	trace_f2fs_submit_folio_bio(page_folio(page), fio);
 
 	if (bio && !page_is_mergeable(fio->sbi, bio, *fio->last_block,
 						fio->new_blkaddr))
@@ -1018,7 +1018,7 @@ void f2fs_submit_page_write(struct f2fs_io_info *fio)
 
 	io->last_block_in_bio = fio->new_blkaddr;
 
-	trace_f2fs_submit_page_write(fio->page, fio);
+	trace_f2fs_submit_folio_write(page_folio(fio->page), fio);
 #ifdef CONFIG_BLK_DEV_ZONED
 	if (f2fs_sb_has_blkzoned(sbi) && btype < META &&
 			is_end_zone_blkaddr(sbi, fio->new_blkaddr)) {
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index 2851c823095b..3253f45508e8 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -1119,11 +1119,11 @@ TRACE_EVENT(f2fs_reserve_new_blocks,
 		(unsigned long long)__entry->count)
 );
 
-DECLARE_EVENT_CLASS(f2fs__submit_page_bio,
+DECLARE_EVENT_CLASS(f2fs__submit_folio_bio,
 
-	TP_PROTO(struct page *page, struct f2fs_io_info *fio),
+	TP_PROTO(struct folio *folio, struct f2fs_io_info *fio),
 
-	TP_ARGS(page, fio),
+	TP_ARGS(folio, fio),
 
 	TP_STRUCT__entry(
 		__field(dev_t, dev)
@@ -1138,9 +1138,9 @@ DECLARE_EVENT_CLASS(f2fs__submit_page_bio,
 	),
 
 	TP_fast_assign(
-		__entry->dev		= page_file_mapping(page)->host->i_sb->s_dev;
-		__entry->ino		= page_file_mapping(page)->host->i_ino;
-		__entry->index		= page->index;
+		__entry->dev		= folio->mapping->host->i_sb->s_dev;
+		__entry->ino		= folio->mapping->host->i_ino;
+		__entry->index		= folio->index;
 		__entry->old_blkaddr	= fio->old_blkaddr;
 		__entry->new_blkaddr	= fio->new_blkaddr;
 		__entry->op		= fio->op;
@@ -1149,7 +1149,7 @@ DECLARE_EVENT_CLASS(f2fs__submit_page_bio,
 		__entry->type		= fio->type;
 	),
 
-	TP_printk("dev = (%d,%d), ino = %lu, page_index = 0x%lx, "
+	TP_printk("dev = (%d,%d), ino = %lu, folio_index = 0x%lx, "
 		"oldaddr = 0x%llx, newaddr = 0x%llx, rw = %s(%s), type = %s_%s",
 		show_dev_ino(__entry),
 		(unsigned long)__entry->index,
@@ -1160,22 +1160,22 @@ DECLARE_EVENT_CLASS(f2fs__submit_page_bio,
 		show_block_type(__entry->type))
 );
 
-DEFINE_EVENT_CONDITION(f2fs__submit_page_bio, f2fs_submit_page_bio,
+DEFINE_EVENT_CONDITION(f2fs__submit_folio_bio, f2fs_submit_folio_bio,
 
-	TP_PROTO(struct page *page, struct f2fs_io_info *fio),
+	TP_PROTO(struct folio *folio, struct f2fs_io_info *fio),
 
-	TP_ARGS(page, fio),
+	TP_ARGS(folio, fio),
 
-	TP_CONDITION(page->mapping)
+	TP_CONDITION(folio->mapping)
 );
 
-DEFINE_EVENT_CONDITION(f2fs__submit_page_bio, f2fs_submit_page_write,
+DEFINE_EVENT_CONDITION(f2fs__submit_folio_bio, f2fs_submit_folio_write,
 
-	TP_PROTO(struct page *page, struct f2fs_io_info *fio),
+	TP_PROTO(struct folio *folio, struct f2fs_io_info *fio),
 
-	TP_ARGS(page, fio),
+	TP_ARGS(folio, fio),
 
-	TP_CONDITION(page->mapping)
+	TP_CONDITION(folio->mapping)
 );
 
 DECLARE_EVENT_CLASS(f2fs__bio,
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 06/11] f2fs: Add F2FS_F_SB()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (4 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 05/11] f2fs: Convert submit tracepoints to take a folio Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 07/11] f2fs: Convert f2fs_finish_read_bio() to use folios Matthew Wilcox (Oracle)
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

This is the folio equivalent of F2FS_P_SB().  Removes a call to
page_file_mapping() as we know folios seen by f2fs are never part of
the swap cache.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/f2fs.h | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 6f2cbf4c5740..f523dd302bf6 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -2003,9 +2003,14 @@ static inline struct f2fs_sb_info *F2FS_M_SB(struct address_space *mapping)
 	return F2FS_I_SB(mapping->host);
 }
 
+static inline struct f2fs_sb_info *F2FS_F_SB(struct folio *folio)
+{
+	return F2FS_M_SB(folio->mapping);
+}
+
 static inline struct f2fs_sb_info *F2FS_P_SB(struct page *page)
 {
-	return F2FS_M_SB(page_file_mapping(page));
+	return F2FS_F_SB(page_folio(page));
 }
 
 static inline struct f2fs_super_block *F2FS_RAW_SUPER(struct f2fs_sb_info *sbi)
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 07/11] f2fs: Convert f2fs_finish_read_bio() to use folios
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (5 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 06/11] f2fs: Add F2FS_F_SB() Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 08/11] f2fs: Use a folio more in f2fs_submit_page_bio() Matthew Wilcox (Oracle)
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Use bio_for_each_folio_all() to iterate over each folio in the bio.
This lets us use folio_end_read() which saves an atomic operation and
memory barrier compared to marking the folio uptodate and unlocking
it as two separate operations.  This also removes a few hidden calls
to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/data.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 7cb2272c723e..aa08ab387e58 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -136,27 +136,22 @@ struct bio_post_read_ctx {
  */
 static void f2fs_finish_read_bio(struct bio *bio, bool in_task)
 {
-	struct bio_vec *bv;
-	struct bvec_iter_all iter_all;
+	struct folio_iter fi;
 	struct bio_post_read_ctx *ctx = bio->bi_private;
 
-	bio_for_each_segment_all(bv, bio, iter_all) {
-		struct page *page = bv->bv_page;
+	bio_for_each_folio_all(fi, bio) {
+		struct folio *folio = fi.folio;
 
-		if (f2fs_is_compressed_page(page)) {
+		if (f2fs_is_compressed_page(&folio->page)) {
 			if (ctx && !ctx->decompression_attempted)
-				f2fs_end_read_compressed_page(page, true, 0,
+				f2fs_end_read_compressed_page(&folio->page, true, 0,
 							in_task);
-			f2fs_put_page_dic(page, in_task);
+			f2fs_put_page_dic(&folio->page, in_task);
 			continue;
 		}
 
-		if (bio->bi_status)
-			ClearPageUptodate(page);
-		else
-			SetPageUptodate(page);
-		dec_page_count(F2FS_P_SB(page), __read_io_type(page));
-		unlock_page(page);
+		dec_page_count(F2FS_F_SB(folio), __read_io_type(&folio->page));
+		folio_end_read(folio, bio->bi_status == 0);
 	}
 
 	if (ctx)
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 08/11] f2fs: Use a folio more in f2fs_submit_page_bio()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (6 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 07/11] f2fs: Convert f2fs_finish_read_bio() to use folios Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 09/11] f2fs: Use a data folio " Matthew Wilcox (Oracle)
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Cache the result of page_folio(fio->page) in a local variable so
we don't have to keep calling it.  Saves a couple of calls to
compound_head() and removes an access to page->mapping.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/data.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index aa08ab387e58..cae5fa895b97 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -684,6 +684,7 @@ void f2fs_flush_merged_writes(struct f2fs_sb_info *sbi)
 int f2fs_submit_page_bio(struct f2fs_io_info *fio)
 {
 	struct bio *bio;
+	struct folio *fio_folio = page_folio(fio->page);
 	struct page *page = fio->encrypted_page ?
 			fio->encrypted_page : fio->page;
 
@@ -697,8 +698,8 @@ int f2fs_submit_page_bio(struct f2fs_io_info *fio)
 	/* Allocate a new bio */
 	bio = __bio_alloc(fio, 1);
 
-	f2fs_set_bio_crypt_ctx(bio, fio->page->mapping->host,
-			page_folio(fio->page)->index, fio, GFP_NOIO);
+	f2fs_set_bio_crypt_ctx(bio, fio_folio->mapping->host,
+			fio_folio->index, fio, GFP_NOIO);
 
 	if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
 		bio_put(bio);
@@ -706,8 +707,7 @@ int f2fs_submit_page_bio(struct f2fs_io_info *fio)
 	}
 
 	if (fio->io_wbc && !is_read_io(fio->op))
-		wbc_account_cgroup_owner(fio->io_wbc, page_folio(fio->page),
-					 PAGE_SIZE);
+		wbc_account_cgroup_owner(fio->io_wbc, fio_folio, PAGE_SIZE);
 
 	inc_page_count(fio->sbi, is_read_io(fio->op) ?
 			__read_io_type(page) : WB_DATA_TYPE(fio->page, false));
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 09/11] f2fs: Use a data folio in f2fs_submit_page_bio()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (7 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 08/11] f2fs: Use a folio more in f2fs_submit_page_bio() Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 10/11] f2fs: Convert __read_io_type() to take a folio Matthew Wilcox (Oracle)
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Remove a call to compound_head().  We can call bio_add_folio_nofail()
here because we just allocated the bio, so we know it can't fail and
thus the error path can never be taken.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/data.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index cae5fa895b97..30d727808c92 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -685,32 +685,28 @@ int f2fs_submit_page_bio(struct f2fs_io_info *fio)
 {
 	struct bio *bio;
 	struct folio *fio_folio = page_folio(fio->page);
-	struct page *page = fio->encrypted_page ?
-			fio->encrypted_page : fio->page;
+	struct folio *data_folio = fio->encrypted_page ?
+			page_folio(fio->encrypted_page) : fio_folio;
 
 	if (!f2fs_is_valid_blkaddr(fio->sbi, fio->new_blkaddr,
 			fio->is_por ? META_POR : (__is_meta_io(fio) ?
 			META_GENERIC : DATA_GENERIC_ENHANCE)))
 		return -EFSCORRUPTED;
 
-	trace_f2fs_submit_folio_bio(page_folio(page), fio);
+	trace_f2fs_submit_folio_bio(data_folio, fio);
 
 	/* Allocate a new bio */
 	bio = __bio_alloc(fio, 1);
 
 	f2fs_set_bio_crypt_ctx(bio, fio_folio->mapping->host,
 			fio_folio->index, fio, GFP_NOIO);
-
-	if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
-		bio_put(bio);
-		return -EFAULT;
-	}
+	bio_add_folio_nofail(bio, data_folio, folio_size(data_folio), 0);
 
 	if (fio->io_wbc && !is_read_io(fio->op))
 		wbc_account_cgroup_owner(fio->io_wbc, fio_folio, PAGE_SIZE);
 
 	inc_page_count(fio->sbi, is_read_io(fio->op) ?
-			__read_io_type(page) : WB_DATA_TYPE(fio->page, false));
+			__read_io_type(&data_folio->page) : WB_DATA_TYPE(fio->page, false));
 
 	if (is_read_io(bio_op(bio)))
 		f2fs_submit_read_bio(fio->sbi, bio, fio->type);
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 10/11] f2fs: Convert __read_io_type() to take a folio
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (8 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 09/11] f2fs: Use a data folio " Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 11/11] f2fs: Remove calls to folio_file_mapping() Matthew Wilcox (Oracle)
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

Remove the last call to page_file_mapping() as both callers can now pass
in a folio.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/data.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 30d727808c92..e68a4dd9bc17 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -70,9 +70,9 @@ bool f2fs_is_cp_guaranteed(struct page *page)
 	return false;
 }
 
-static enum count_type __read_io_type(struct page *page)
+static enum count_type __read_io_type(struct folio *folio)
 {
-	struct address_space *mapping = page_file_mapping(page);
+	struct address_space *mapping = folio->mapping;
 
 	if (mapping) {
 		struct inode *inode = mapping->host;
@@ -150,7 +150,7 @@ static void f2fs_finish_read_bio(struct bio *bio, bool in_task)
 			continue;
 		}
 
-		dec_page_count(F2FS_F_SB(folio), __read_io_type(&folio->page));
+		dec_page_count(F2FS_F_SB(folio), __read_io_type(folio));
 		folio_end_read(folio, bio->bi_status == 0);
 	}
 
@@ -706,7 +706,7 @@ int f2fs_submit_page_bio(struct f2fs_io_info *fio)
 		wbc_account_cgroup_owner(fio->io_wbc, fio_folio, PAGE_SIZE);
 
 	inc_page_count(fio->sbi, is_read_io(fio->op) ?
-			__read_io_type(&data_folio->page) : WB_DATA_TYPE(fio->page, false));
+			__read_io_type(data_folio) : WB_DATA_TYPE(fio->page, false));
 
 	if (is_read_io(bio_op(bio)))
 		f2fs_submit_read_bio(fio->sbi, bio, fio->type);
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [f2fs-dev] [PATCH 11/11] f2fs: Remove calls to folio_file_mapping()
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (9 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 10/11] f2fs: Convert __read_io_type() to take a folio Matthew Wilcox (Oracle)
@ 2024-11-28  4:58 ` Matthew Wilcox (Oracle)
  2024-12-16 13:59 ` [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 16+ messages in thread
From: Matthew Wilcox (Oracle) @ 2024-11-28  4:58 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: Matthew Wilcox (Oracle), linux-f2fs-devel

All folios that f2fs sees belong to f2fs and not to the swapcache
so it can dereference folio->mapping directly like all other
filesystems do.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
---
 fs/f2fs/data.c              | 2 +-
 fs/f2fs/inline.c            | 2 +-
 include/trace/events/f2fs.h | 9 ++++-----
 3 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index e68a4dd9bc17..0657f731d4b7 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2455,7 +2455,7 @@ static int f2fs_mpage_readpages(struct inode *inode,
 
 static int f2fs_read_data_folio(struct file *file, struct folio *folio)
 {
-	struct inode *inode = folio_file_mapping(folio)->host;
+	struct inode *inode = folio->mapping->host;
 	int ret = -EAGAIN;
 
 	trace_f2fs_readpage(folio, DATA);
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
index 005babf1bed1..cbd2a0d34804 100644
--- a/fs/f2fs/inline.c
+++ b/fs/f2fs/inline.c
@@ -81,7 +81,7 @@ bool f2fs_may_inline_dentry(struct inode *inode)
 
 void f2fs_do_read_inline_data(struct folio *folio, struct page *ipage)
 {
-	struct inode *inode = folio_file_mapping(folio)->host;
+	struct inode *inode = folio->mapping->host;
 
 	if (folio_test_uptodate(folio))
 		return;
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
index 3253f45508e8..eb3b2f1326b1 100644
--- a/include/trace/events/f2fs.h
+++ b/include/trace/events/f2fs.h
@@ -1322,12 +1322,11 @@ DECLARE_EVENT_CLASS(f2fs__folio,
 	),
 
 	TP_fast_assign(
-		__entry->dev	= folio_file_mapping(folio)->host->i_sb->s_dev;
-		__entry->ino	= folio_file_mapping(folio)->host->i_ino;
+		__entry->dev	= folio->mapping->host->i_sb->s_dev;
+		__entry->ino	= folio->mapping->host->i_ino;
 		__entry->type	= type;
-		__entry->dir	=
-			S_ISDIR(folio_file_mapping(folio)->host->i_mode);
-		__entry->index	= folio_index(folio);
+		__entry->dir	= S_ISDIR(folio->mapping->host->i_mode);
+		__entry->index	= folio->index;
 		__entry->dirty	= folio_test_dirty(folio);
 		__entry->uptodate = folio_test_uptodate(folio);
 	),
-- 
2.45.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [f2fs-dev] [PATCH 00/11] f2fs folio patches
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (10 preceding siblings ...)
  2024-11-28  4:58 ` [f2fs-dev] [PATCH 11/11] f2fs: Remove calls to folio_file_mapping() Matthew Wilcox (Oracle)
@ 2024-12-16 13:59 ` Matthew Wilcox
  2024-12-16 16:11   ` Jaegeuk Kim via Linux-f2fs-devel
  2024-12-16 14:39 ` Chao Yu via Linux-f2fs-devel
  2024-12-16 16:40 ` patchwork-bot+f2fs--- via Linux-f2fs-devel
  13 siblings, 1 reply; 16+ messages in thread
From: Matthew Wilcox @ 2024-12-16 13:59 UTC (permalink / raw)
  To: Jaegeuk Kim, Chao Yu; +Cc: linux-f2fs-devel

On Thu, Nov 28, 2024 at 04:58:15AM +0000, Matthew Wilcox (Oracle) wrote:
> This round of f2fs patches accomplishes two things:

Ping.  It's been two weeks and these patches aren't in linux-next yet.

>  - Removal of all references to page->index in f2fs.  I'm looking to
>    finish this conversion in the January merge window.
>  - Removal of all calls to page_file_mapping() and folio_file_mapping()
> 
> I have only compile-tested these patches.
> 
> Matthew Wilcox (Oracle) (11):
>   f2fs: Use a folio in f2fs_all_cluster_page_ready()
>   f2fs: Use a folio in f2fs_compress_write_end()
>   f2fs: Use a folio in f2fs_truncate_partial_cluster()
>   f2fs: Use a folio in f2fs_write_compressed_pages()
>   f2fs: Convert submit tracepoints to take a folio
>   f2fs: Add F2FS_F_SB()
>   f2fs: Convert f2fs_finish_read_bio() to use folios
>   f2fs: Use a folio more in f2fs_submit_page_bio()
>   f2fs: Use a data folio in f2fs_submit_page_bio()
>   f2fs: Convert __read_io_type() to take a folio
>   f2fs: Remove calls to folio_file_mapping()
> 
>  fs/f2fs/compress.c          | 28 ++++++++++++--------
>  fs/f2fs/data.c              | 53 +++++++++++++++----------------------
>  fs/f2fs/f2fs.h              |  7 ++++-
>  fs/f2fs/inline.c            |  2 +-
>  include/trace/events/f2fs.h | 39 +++++++++++++--------------
>  5 files changed, 65 insertions(+), 64 deletions(-)
> 
> -- 
> 2.45.2
> 


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [f2fs-dev] [PATCH 00/11] f2fs folio patches
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (11 preceding siblings ...)
  2024-12-16 13:59 ` [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox
@ 2024-12-16 14:39 ` Chao Yu via Linux-f2fs-devel
  2024-12-16 16:40 ` patchwork-bot+f2fs--- via Linux-f2fs-devel
  13 siblings, 0 replies; 16+ messages in thread
From: Chao Yu via Linux-f2fs-devel @ 2024-12-16 14:39 UTC (permalink / raw)
  To: Matthew Wilcox (Oracle), Jaegeuk Kim; +Cc: linux-f2fs-devel

On 2024/11/28 12:58, Matthew Wilcox (Oracle) wrote:
> This round of f2fs patches accomplishes two things:
> 
>   - Removal of all references to page->index in f2fs.  I'm looking to
>     finish this conversion in the January merge window.
>   - Removal of all calls to page_file_mapping() and folio_file_mapping()
> 
> I have only compile-tested these patches.
> 
> Matthew Wilcox (Oracle) (11):
>    f2fs: Use a folio in f2fs_all_cluster_page_ready()
>    f2fs: Use a folio in f2fs_compress_write_end()
>    f2fs: Use a folio in f2fs_truncate_partial_cluster()
>    f2fs: Use a folio in f2fs_write_compressed_pages()
>    f2fs: Convert submit tracepoints to take a folio
>    f2fs: Add F2FS_F_SB()
>    f2fs: Convert f2fs_finish_read_bio() to use folios
>    f2fs: Use a folio more in f2fs_submit_page_bio()
>    f2fs: Use a data folio in f2fs_submit_page_bio()
>    f2fs: Convert __read_io_type() to take a folio
>    f2fs: Remove calls to folio_file_mapping()

For all patches in this serial, feel free to add:

Reviewed-by: Chao Yu <chao@kernel.org>

Thanks,

> 
>   fs/f2fs/compress.c          | 28 ++++++++++++--------
>   fs/f2fs/data.c              | 53 +++++++++++++++----------------------
>   fs/f2fs/f2fs.h              |  7 ++++-
>   fs/f2fs/inline.c            |  2 +-
>   include/trace/events/f2fs.h | 39 +++++++++++++--------------
>   5 files changed, 65 insertions(+), 64 deletions(-)
> 



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [f2fs-dev] [PATCH 00/11] f2fs folio patches
  2024-12-16 13:59 ` [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox
@ 2024-12-16 16:11   ` Jaegeuk Kim via Linux-f2fs-devel
  0 siblings, 0 replies; 16+ messages in thread
From: Jaegeuk Kim via Linux-f2fs-devel @ 2024-12-16 16:11 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: linux-f2fs-devel

On 12/16, Matthew Wilcox wrote:
> On Thu, Nov 28, 2024 at 04:58:15AM +0000, Matthew Wilcox (Oracle) wrote:
> > This round of f2fs patches accomplishes two things:
> 
> Ping.  It's been two weeks and these patches aren't in linux-next yet.

I was testing the series in dev-test.

https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/log/?h=dev-test

> 
> >  - Removal of all references to page->index in f2fs.  I'm looking to
> >    finish this conversion in the January merge window.
> >  - Removal of all calls to page_file_mapping() and folio_file_mapping()
> > 
> > I have only compile-tested these patches.
> > 
> > Matthew Wilcox (Oracle) (11):
> >   f2fs: Use a folio in f2fs_all_cluster_page_ready()
> >   f2fs: Use a folio in f2fs_compress_write_end()
> >   f2fs: Use a folio in f2fs_truncate_partial_cluster()
> >   f2fs: Use a folio in f2fs_write_compressed_pages()
> >   f2fs: Convert submit tracepoints to take a folio
> >   f2fs: Add F2FS_F_SB()
> >   f2fs: Convert f2fs_finish_read_bio() to use folios
> >   f2fs: Use a folio more in f2fs_submit_page_bio()
> >   f2fs: Use a data folio in f2fs_submit_page_bio()
> >   f2fs: Convert __read_io_type() to take a folio
> >   f2fs: Remove calls to folio_file_mapping()
> > 
> >  fs/f2fs/compress.c          | 28 ++++++++++++--------
> >  fs/f2fs/data.c              | 53 +++++++++++++++----------------------
> >  fs/f2fs/f2fs.h              |  7 ++++-
> >  fs/f2fs/inline.c            |  2 +-
> >  include/trace/events/f2fs.h | 39 +++++++++++++--------------
> >  5 files changed, 65 insertions(+), 64 deletions(-)
> > 
> > -- 
> > 2.45.2
> > 


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [f2fs-dev] [PATCH 00/11] f2fs folio patches
  2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
                   ` (12 preceding siblings ...)
  2024-12-16 14:39 ` Chao Yu via Linux-f2fs-devel
@ 2024-12-16 16:40 ` patchwork-bot+f2fs--- via Linux-f2fs-devel
  13 siblings, 0 replies; 16+ messages in thread
From: patchwork-bot+f2fs--- via Linux-f2fs-devel @ 2024-12-16 16:40 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: jaegeuk, linux-f2fs-devel

Hello:

This series was applied to jaegeuk/f2fs.git (dev)
by Jaegeuk Kim <jaegeuk@kernel.org>:

On Thu, 28 Nov 2024 04:58:15 +0000 you wrote:
> This round of f2fs patches accomplishes two things:
> 
>  - Removal of all references to page->index in f2fs.  I'm looking to
>    finish this conversion in the January merge window.
>  - Removal of all calls to page_file_mapping() and folio_file_mapping()
> 
> I have only compile-tested these patches.
> 
> [...]

Here is the summary with links:
  - [f2fs-dev,01/11] f2fs: Use a folio in f2fs_all_cluster_page_ready()
    https://git.kernel.org/jaegeuk/f2fs/c/a909c1795353
  - [f2fs-dev,02/11] f2fs: Use a folio in f2fs_compress_write_end()
    https://git.kernel.org/jaegeuk/f2fs/c/ff6c82a934f7
  - [f2fs-dev,03/11] f2fs: Use a folio in f2fs_truncate_partial_cluster()
    https://git.kernel.org/jaegeuk/f2fs/c/1cda5bc0b2fe
  - [f2fs-dev,04/11] f2fs: Use a folio in f2fs_write_compressed_pages()
    https://git.kernel.org/jaegeuk/f2fs/c/ac866908d7a9
  - [f2fs-dev,05/11] f2fs: Convert submit tracepoints to take a folio
    https://git.kernel.org/jaegeuk/f2fs/c/87e2a15bc008
  - [f2fs-dev,06/11] f2fs: Add F2FS_F_SB()
    https://git.kernel.org/jaegeuk/f2fs/c/1cf746007005
  - [f2fs-dev,07/11] f2fs: Convert f2fs_finish_read_bio() to use folios
    https://git.kernel.org/jaegeuk/f2fs/c/e0821645dd2d
  - [f2fs-dev,08/11] f2fs: Use a folio more in f2fs_submit_page_bio()
    https://git.kernel.org/jaegeuk/f2fs/c/0765b3f989a7
  - [f2fs-dev,09/11] f2fs: Use a data folio in f2fs_submit_page_bio()
    https://git.kernel.org/jaegeuk/f2fs/c/f58d8645824b
  - [f2fs-dev,10/11] f2fs: Convert __read_io_type() to take a folio
    https://git.kernel.org/jaegeuk/f2fs/c/19bbd306ddfd
  - [f2fs-dev,11/11] f2fs: Remove calls to folio_file_mapping()
    https://git.kernel.org/jaegeuk/f2fs/c/c910a64bc4e2

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html




_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2024-12-16 16:40 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-28  4:58 [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 01/11] f2fs: Use a folio in f2fs_all_cluster_page_ready() Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 02/11] f2fs: Use a folio in f2fs_compress_write_end() Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 03/11] f2fs: Use a folio in f2fs_truncate_partial_cluster() Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 04/11] f2fs: Use a folio in f2fs_write_compressed_pages() Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 05/11] f2fs: Convert submit tracepoints to take a folio Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 06/11] f2fs: Add F2FS_F_SB() Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 07/11] f2fs: Convert f2fs_finish_read_bio() to use folios Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 08/11] f2fs: Use a folio more in f2fs_submit_page_bio() Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 09/11] f2fs: Use a data folio " Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 10/11] f2fs: Convert __read_io_type() to take a folio Matthew Wilcox (Oracle)
2024-11-28  4:58 ` [f2fs-dev] [PATCH 11/11] f2fs: Remove calls to folio_file_mapping() Matthew Wilcox (Oracle)
2024-12-16 13:59 ` [f2fs-dev] [PATCH 00/11] f2fs folio patches Matthew Wilcox
2024-12-16 16:11   ` Jaegeuk Kim via Linux-f2fs-devel
2024-12-16 14:39 ` Chao Yu via Linux-f2fs-devel
2024-12-16 16:40 ` patchwork-bot+f2fs--- via Linux-f2fs-devel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).