Re: linux-next: build failure after merge of the block tree

Jens Axboe <[email protected]> Mon, 3 Aug 2026 19:50:11 -0600
Newsgroups org.kernel.vger.linux-next,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 8/3/26 10:52 AM, Mark Brown wrote:
> Hi all,
> 
> After merging the block tree, today's linux-next build
> (arm64 allnoconfig) failed like this:
> 
> /tmp/next/build/fs/iomap/direct-io.c: In function '__iomap_dio_read_simple':
> /tmp/next/build/fs/iomap/direct-io.c:1037:15: error: too few arguments to function 'bio_iov_iter_get_pages'
>  1037 |         ret = bio_iov_iter_get_pages(bio, iter, alignment - 1);
>       |               ^~~~~~~~~~~~~~~~~~~~~~
> In file included from /tmp/next/build/include/linux/bio-integrity.h:5,
>                  from /tmp/next/build/fs/iomap/direct-io.c:6:
> /tmp/next/build/include/linux/bio.h:524:5: note: declared here
>   524 | int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter,
>       |     ^~~~~~~~~~~~~~~~~~~~~~
> 
> caused by a sematic conflict between
> 
>   14b007e178811 (block: validate user space vectors during extraction)
> 
> from the block tree and
> 
>   36f199c8d0ee4 (iomap: add simple dio path for small direct I/O)
> 
> from the vfs-brauner tree.  I have applied the fixup patch below and can
> carry as needed, you should ensure you flag this to Linus when sending
> PRs:
> 
> From 5bf17d9828d05688ad4fd04cc07b64642d4ba295 Mon Sep 17 00:00:00 2001
> From: Mark Brown <[email protected]>
> Date: Mon, 3 Aug 2026 15:53:13 +0100
> Subject: [PATCH] fs: Fix up semantic conflict with bio_iov_iter_get_pages
> 
> /tmp/next/build/fs/iomap/direct-io.c: In function '__iomap_dio_read_simple':
> /tmp/next/build/fs/iomap/direct-io.c:1037:15: error: too few arguments to function 'bio_iov_iter_get_pages'
>  1037 |         ret = bio_iov_iter_get_pages(bio, iter, alignment - 1);
>       |               ^~~~~~~~~~~~~~~~~~~~~~
> In file included from /tmp/next/build/include/linux/bio-integrity.h:5,
>                  from /tmp/next/build/fs/iomap/direct-io.c:6:
> /tmp/next/build/include/linux/bio.h:524:5: note: declared here
>   524 | int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter,
>       |     ^~~~~~~~~~~~~~~~~~~~~~
> 
> Signed-off-by: Mark Brown <[email protected]>
> ---
>  fs/iomap/direct-io.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/iomap/direct-io.c b/fs/iomap/direct-io.c
> index 2b3e916dedc77..2aa71be36c996 100644
> --- a/fs/iomap/direct-io.c
> +++ b/fs/iomap/direct-io.c
> @@ -1034,7 +1034,8 @@ ssize_t __iomap_dio_read_simple(struct kiocb *iocb, struct iov_iter *iter,
>  	bio->bi_iter.bi_sector = iomap_sector(&iomi->iomap, iomi->pos);
>  	bio->bi_ioprio = iocb->ki_ioprio;
>  
> -	ret = bio_iov_iter_get_pages(bio, iter, alignment - 1);
> +	ret = bio_iov_iter_get_pages(bio, iter, bdev_dma_alignment(bio->bi_bdev),
> +				     alignment - 1);
>  	if (unlikely(ret))
>  		goto out_bio_put;

Looks good to me, thanks Mark.

-- 
Jens Axboe