Subject: Re: linux-next: manual merge of the vfs_brauner tree with the btrfs tree

From: Qu Wenruo <[email-masked]>
Date: Mon, 24 Nov 2025 09:55:23 +1030

在 2025/11/24 09:35, Stephen Rothwell 写道:
> Hi all,
> 
> After merging the vfs-brauner tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
> 
> In file included from include/linux/bits.h:30,
>                   from include/linux/gfp_types.h:5,
>                   from include/linux/gfp.h:5,
>                   from include/linux/slab.h:16,
>                   from fs/btrfs/ordered-data.c:6:
> fs/btrfs/ordered-data.c: In function 'btrfs_mark_ordered_io_truncated':
> fs/btrfs/ordered-data.c:561:37: error: implicit declaration of function 'folio_end'; did you mean 'folio_nid'? [-Wimplicit-function-declaration]
>    561 |         ASSERT(file_offset + len <= folio_end(folio));
>        |                                     ^~~~~~~~~
> include/linux/build_bug.h:30:63: note: in definition of macro 'BUILD_BUG_ON_INVALID'
>     30 | #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))
>        |                                                               ^
> fs/btrfs/ordered-data.c:561:9: note: in expansion of macro 'ASSERT'
>    561 |         ASSERT(file_offset + len <= folio_end(folio));
>        |         ^~~~~~
> In file included from include/linux/bits.h:30,
>                   from include/linux/bitops.h:6,
>                   from fs/btrfs/extent_io.c:3:
> fs/btrfs/extent_io.c: In function 'submit_range':
> fs/btrfs/extent_io.c:1621:31: error: implicit declaration of function 'folio_end'; did you mean 'folio_nid'? [-Wimplicit-function-declaration]
>   1621 |         ASSERT(start + len <= folio_end(folio));
>        |                               ^~~~~~~~~
> include/linux/build_bug.h:30:63: note: in definition of macro 'BUILD_BUG_ON_INVALID'
>     30 | #define BUILD_BUG_ON_INVALID(e) ((void)(sizeof((__force long)(e))))
>        |                                                               ^
> fs/btrfs/extent_io.c:1621:9: note: in expansion of macro 'ASSERT'
>   1621 |         ASSERT(start + len <= folio_end(folio));
>        |         ^~~~~~
> 
> Caused by commit
> 
>    48f3784b17d9 ("btrfs: Use folio_next_pos()")
> 
> interatcing with commits
> 
>    98dad9ca0426 ("btrfs: reduce extent map lookup during writes")
>    c7459b067d9d ("btrfs: make sure all ordered extents beyond EOF is properly truncated")
> 
> from the btrfs tree.
> 
> I applied the following merge fix patch.

Thanks for fixing that.

Although that two patches from btrfs tree is now retracted for other 
reasons.

I'll refresh the involved patches in the next cycle when btrfs all 
migrate to folio_next_pos().

Thanks,
Qu

> 
> From: Stephen Rothwell <[email-masked]>
> Date: Mon, 24 Nov 2025 09:51:32 +1100
> Subject: [PATCH] fix up for "btrfs: Use folio_next_pos()"
> 
> interacting with commits
> 
>    98dad9ca0426 ("btrfs: reduce extent map lookup during writes")
>    c7459b067d9d ("btrfs: make sure all ordered extents beyond EOF is properly truncated")
> 
> from the btrfs tree.
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>   fs/btrfs/extent_io.c    | 2 +-
>   fs/btrfs/ordered-data.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
> index 995439dff185..3e4056dd8b55 100644
> --- a/fs/btrfs/extent_io.c
> +++ b/fs/btrfs/extent_io.c
> @@ -1618,7 +1618,7 @@ static int submit_range(struct btrfs_inode *inode, struct folio *folio,
>   
>   	ASSERT(IS_ALIGNED(start, sectorsize));
>   	ASSERT(IS_ALIGNED(len, sectorsize));
> -	ASSERT(start + len <= folio_end(folio));
> +	ASSERT(start + len <= folio_next_pos(folio));
>   
>   	while (cur < start + len) {
>   		struct extent_map *em;
> diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c
> index 51c0a910ea81..731032b40821 100644
> --- a/fs/btrfs/ordered-data.c
> +++ b/fs/btrfs/ordered-data.c
> @@ -558,7 +558,7 @@ void btrfs_mark_ordered_io_truncated(struct btrfs_inode *inode, struct folio *fo
>   	u64 cur = file_offset;
>   
>   	ASSERT(file_offset >= folio_pos(folio));
> -	ASSERT(file_offset + len <= folio_end(folio));
> +	ASSERT(file_offset + len <= folio_next_pos(folio));
>   
>   	while  (cur < file_offset + len) {
>   		u32 cur_len = file_offset + len - cur;