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

From: Jens Axboe

Date: Mon Aug 03 2026 - 21:55:13 EST


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 <broonie@xxxxxxxxxx>
> 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 <broonie@xxxxxxxxxx>
> ---
> 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