lkml.org 
[lkml]   [2023]   [Jan]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: linux-next: build failure after merge of the mm tree
On Fri 27-01-23 16:59:12, Stephen Rothwell wrote:
> Hi all,
>
> After merging the mm tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
>
> fs/udf/inode.c: In function 'udf_writepages':
> fs/udf/inode.c:211:48: error: passing argument 3 of 'write_cache_pages' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 211 | return write_cache_pages(mapping, wbc, udf_adinicb_writepage, NULL);
> | ^~~~~~~~~~~~~~~~~~~~~
> | |
> | int (*)(struct page *, struct writeback_control *, void *)
> In file included from fs/udf/inode.c:36:
> 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
>
> 79d3c6dbada4 ("udf: Convert in-ICB files to use udf_writepages()")
>
> from the ext3 tree.
>
> I have applied the following merge fix patch (I wasn't sure what to do
> with the PageLocked()).

Thanks for the fixup! The right function to replace PageLocked() with is
folio_test_locked(). Anyway, I'll prepare a suggested conflict resolution
for Linus when pushing the changes.

Honza

>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Fri, 27 Jan 2023 16:50:34 +1100
> Subject: [PATCH] udf: fix up for "fs: convert writepage_t callback to pass a folio"
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
> fs/udf/inode.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/fs/udf/inode.c b/fs/udf/inode.c
> index 3b2adf4cbc57..b47bf9c73f4d 100644
> --- a/fs/udf/inode.c
> +++ b/fs/udf/inode.c
> @@ -185,16 +185,17 @@ static void udf_write_failed(struct address_space *mapping, loff_t to)
> }
> }
>
> -static int udf_adinicb_writepage(struct page *page,
> +static int udf_adinicb_writepage(struct folio *folio,
> struct writeback_control *wbc, void *data)
> {
> + struct page *page = &folio->page;
> struct inode *inode = page->mapping->host;
> struct udf_inode_info *iinfo = UDF_I(inode);
>
> - BUG_ON(!PageLocked(page));
> +// BUG_ON(!PageLocked(page));
> memcpy_to_page(page, 0, iinfo->i_data + iinfo->i_lenEAttr,
> i_size_read(inode));
> - unlock_page(page);
> + folio_unlock(folio);
> mark_inode_dirty(inode);
>
> return 0;
> --
> 2.35.1
>
> --
> Cheers,
> Stephen Rothwell


--
Jan Kara <jack@suse.com>
SUSE Labs, CR

\
 
 \ /
  Last update: 2023-03-26 23:58    [W:0.117 / U:0.384 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site