Subject: linux-next: build failure after merge of the mm tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 27 Jan 2023 17:36:38 +1100

Hi all,

After merging the mm tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

fs/gfs2/log.c: In function 'gfs2_ail1_start_one':
fs/gfs2/log.c:143:55: error: passing argument 3 of 'write_cache_pages' from incompatible pointer type [-Werror=incompatible-pointer-types]
  143 |                 ret = write_cache_pages(mapping, wbc, __gfs2_writepage, mapping);
      |                                                       ^~~~~~~~~~~~~~~~
      |                                                       |
      |                                                       int (*)(struct page *, struct writeback_control *, void *)
In file included from fs/gfs2/log.c:20:
include/linux/writeback.h:375:66: note: expected 'writepage_t' {aka 'int (*)(struct folio *, struct writeback_control *, void *)'} but argument is of type 'int (*)(struct page *, struct writeback_control *, void *)'
  375 |                       struct writeback_control *wbc, writepage_t writepage,
      |                                                      ~~~~~~~~~~~~^~~~~~~~~

Caused by commit

  a36a897cc496 ("fs: convert writepage_t callback to pass a folio")

interacting with commit

  95ecbd0f162f ("Revert "gfs2: stop using generic_writepages in gfs2_ail1_start_one"")

from Linus' tree (post v6.2-rc4).

I have applied the following merge fix patch for today.

From: Stephen Rothwell <[email-masked]>
Date: Fri, 27 Jan 2023 17:26:08 +1100
Subject: [PATCH] gfs2: fix up for "fs: convert writepage_t callback to pass a folio"

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 fs/gfs2/log.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/gfs2/log.c b/fs/gfs2/log.c
index 25fd21a9dec8..d750d1128bed 100644
--- a/fs/gfs2/log.c
+++ b/fs/gfs2/log.c
@@ -80,11 +80,11 @@ void gfs2_remove_from_ail(struct gfs2_bufdata *bd)
 	brelse(bd->bd_bh);
 }
 
-static int __gfs2_writepage(struct page *page, struct writeback_control *wbc,
+static int __gfs2_writepage(struct folio *folio, struct writeback_control *wbc,
 		       void *data)
 {
 	struct address_space *mapping = data;
-	int ret = mapping->a_ops->writepage(page, wbc);
+	int ret = mapping->a_ops->writepage(&folio->page, wbc);
 	mapping_set_error(mapping, ret);
 	return ret;
 }
-- 
2.35.1

-- 
Cheers,
Stephen Rothwell