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

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild-all,org.kernel.vger.linux-kernel,org.kernel.vger.linux-next
Message-ID <[email protected]>
Hi Mark,

kernel test robot noticed the following build errors:

[auto build test ERROR on brauner-vfs/vfs.all]
[cannot apply to linus/master v7.2-rc7 next-20260812]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Mark-Brown/linux-next-build-failure-after-merge-of-the-block-tree/20260813-203616
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all
patch link:    https://lore.kernel.org/r/anDHU9Wc-EGV1KYL%40sirena.org.uk
patch subject: linux-next: build failure after merge of the block tree
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20260814/[email protected]/config)
compiler: powerpc64-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260814/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   fs/iomap/direct-io.c: In function '__iomap_dio_read_simple':
>> fs/iomap/direct-io.c:1036:15: error: too many arguments to function 'bio_iov_iter_get_pages'; expected 3, have 4
    1036 |         ret = bio_iov_iter_get_pages(bio, iter, bdev_dma_alignment(bio->bi_bdev),
         |               ^~~~~~~~~~~~~~~~~~~~~~
    1037 |                                      alignment - 1);
         |                                      ~~~~~~~~~~~~~
   In file included from include/linux/bio-integrity.h:5,
                    from fs/iomap/direct-io.c:6:
   include/linux/bio.h:479:5: note: declared here
     479 | int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter,
         |     ^~~~~~~~~~~~~~~~~~~~~~


vim +/bio_iov_iter_get_pages +1036 fs/iomap/direct-io.c

   990	
   991	ssize_t __iomap_dio_read_simple(struct kiocb *iocb, struct iov_iter *iter,
   992			struct iomap_iter *iomi)
   993	{
   994		gfp_t gfp = (iomi->flags & IOMAP_NOWAIT) ? GFP_NOWAIT : GFP_KERNEL;
   995		struct iomap_dio_simple *sr;
   996		unsigned int alignment;
   997		struct bio *bio;
   998		ssize_t ret;
   999	
  1000		if (iomi->iomap.type != IOMAP_MAPPED ||
  1001		    iomi->iomap.offset + iomi->iomap.length < iomi->pos + iomi->len ||
  1002		    (iomi->iomap.flags & IOMAP_F_INTEGRITY)) {
  1003			ret = -ENOTBLK;
  1004			goto out_dio_end;
  1005		}
  1006	
  1007		alignment = iomap_dio_alignment(iomi->inode, iomi->iomap.bdev, 0);
  1008		if ((iomi->pos | iomi->len) & (alignment - 1)) {
  1009			ret = -EINVAL;
  1010			goto out_dio_end;
  1011		}
  1012	
  1013		if (unlikely(!iomi->inode->i_sb->s_dio_done_wq &&
  1014				!is_sync_kiocb(iocb))) {
  1015			ret = sb_init_dio_done_wq(iomi->inode->i_sb);
  1016			if (ret < 0)
  1017				goto out_dio_end;
  1018		}
  1019	
  1020		trace_iomap_dio_rw_begin(iocb, iter, 0, 0);
  1021	
  1022		bio = bio_alloc_bioset(iomi->iomap.bdev,
  1023				       bio_iov_vecs_to_alloc(iter, BIO_MAX_VECS),
  1024				       REQ_OP_READ, gfp, &iomap_dio_simple_pool);
  1025		if (!bio) {
  1026			ret = -EAGAIN;
  1027			goto out_dio_end;
  1028		}
  1029		sr = container_of(bio, struct iomap_dio_simple, bio);
  1030		sr->iocb = iocb;
  1031		sr->dio_flags = 0;
  1032	
  1033		bio->bi_iter.bi_sector = iomap_sector(&iomi->iomap, iomi->pos);
  1034		bio->bi_ioprio = iocb->ki_ioprio;
  1035	
> 1036		ret = bio_iov_iter_get_pages(bio, iter, bdev_dma_alignment(bio->bi_bdev),
  1037					     alignment - 1);
  1038		if (unlikely(ret))
  1039			goto out_bio_put;
  1040	
  1041		if (bio->bi_iter.bi_size != iomi->len) {
  1042			iov_iter_revert(iter, bio->bi_iter.bi_size);
  1043			ret = -ENOTBLK;
  1044			goto out_bio_release_pages;
  1045		}
  1046	
  1047		sr->size = bio->bi_iter.bi_size;
  1048		if (user_backed_iter(iter)) {
  1049			bio_set_pages_dirty(bio);
  1050			sr->dio_flags |= IOMAP_DIO_USER_BACKED;
  1051		}
  1052	
  1053		if (iocb->ki_flags & IOCB_NOWAIT)
  1054			bio->bi_opf |= REQ_NOWAIT;
  1055	
  1056		if (is_sync_kiocb(iocb)) {
  1057			submit_bio_wait(bio);
  1058			return iomap_dio_simple_complete(sr);
  1059		}
  1060	
  1061		if ((iocb->ki_flags & IOCB_HIPRI)) {
  1062			bio->bi_opf |= REQ_POLLED;
  1063			WRITE_ONCE(iocb->private, bio);
  1064		}
  1065		bio->bi_end_io = iomap_dio_simple_end_io;
  1066		submit_bio(bio);
  1067		trace_iomap_dio_rw_queued(iomi->inode, iocb->ki_pos, iomi->len);
  1068		return -EIOCBQUEUED;
  1069	
  1070	out_bio_release_pages:
  1071		bio_release_pages(bio, false);
  1072	out_bio_put:
  1073		bio_put(bio);
  1074	out_dio_end:
  1075		inode_dio_end(iomi->inode);
  1076		return ret;
  1077	}
  1078	EXPORT_SYMBOL_GPL(__iomap_dio_read_simple);
  1079	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.