All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Mark Brown <broonie@kernel.org>,
	Eric Biggers <ebiggers@kernel.org>,
	"Theodore Y. Ts'o" <tytso@mit.edu>,
	Jaegeuk Kim <jaegeuk@kernel.org>, Chao Yu <chao@kernel.org>,
	Christoph Hellwig <hch@lst.de>
Cc: oe-kbuild-all@lists.linux.dev,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Linux Next Mailing List <linux-next@vger.kernel.org>
Subject: Re: linux-next: build failure after merge of the fsverity tree
Date: Thu, 5 Feb 2026 01:39:21 +0800	[thread overview]
Message-ID: <202602050113.5EtCPNU4-lkp@intel.com> (raw)
In-Reply-To: <aYH54qJee85qLLkN@sirena.org.uk>

Hi Mark,

kernel test robot noticed the following build errors:

[auto build test ERROR on jaegeuk-f2fs/dev-test]
[also build test ERROR on jaegeuk-f2fs/dev]
[cannot apply to linus/master v6.19-rc8 next-20260204]
[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-fsverity-tree/20260203-214224
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
patch link:    https://lore.kernel.org/r/aYH54qJee85qLLkN%40sirena.org.uk
patch subject: linux-next: build failure after merge of the fsverity tree
config: x86_64-rhel-9.4-bpf (https://download.01.org/0day-ci/archive/20260205/202602050113.5EtCPNU4-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260205/202602050113.5EtCPNU4-lkp@intel.com/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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602050113.5EtCPNU4-lkp@intel.com/

All errors (new ones prefixed by >>):

   fs/f2fs/data.c: In function 'f2fs_read_data_large_folio':
   fs/f2fs/data.c:2523:51: error: passing argument 1 of 'fsverity_verify_page' from incompatible pointer type [-Wincompatible-pointer-types]
    2523 |                             !fsverity_verify_page(vi, folio_file_page(folio,
         |                                                   ^~
         |                                                   |
         |                                                   struct fsverity_info *
   In file included from fs/f2fs/f2fs.h:29,
                    from fs/f2fs/data.c:24:
   include/linux/fsverity.h:298:54: note: expected 'struct page *' but argument is of type 'struct fsverity_info *'
     298 | static inline bool fsverity_verify_page(struct page *page)
         |                                         ~~~~~~~~~~~~~^~~~
>> fs/f2fs/data.c:2523:30: error: too many arguments to function 'fsverity_verify_page'
    2523 |                             !fsverity_verify_page(vi, folio_file_page(folio,
         |                              ^~~~~~~~~~~~~~~~~~~~
   include/linux/fsverity.h:298:20: note: declared here
     298 | static inline bool fsverity_verify_page(struct page *page)
         |                    ^~~~~~~~~~~~~~~~~~~~
   fs/f2fs/data.c:2555:57: error: passing argument 2 of 'f2fs_grab_read_bio' makes integer from pointer without a cast [-Wint-conversion]
    2555 |                         bio = f2fs_grab_read_bio(inode, vi, block_nr,
         |                                                         ^~
         |                                                         |
         |                                                         struct fsverity_info *
   fs/f2fs/data.c:1097:68: note: expected 'block_t' {aka 'unsigned int'} but argument is of type 'struct fsverity_info *'
    1097 | static struct bio *f2fs_grab_read_bio(struct inode *inode, block_t blkaddr,
         |                                                            ~~~~~~~~^~~~~~~
>> fs/f2fs/data.c:2555:31: error: too many arguments to function 'f2fs_grab_read_bio'
    2555 |                         bio = f2fs_grab_read_bio(inode, vi, block_nr,
         |                               ^~~~~~~~~~~~~~~~~~
   fs/f2fs/data.c:1097:20: note: declared here
    1097 | static struct bio *f2fs_grab_read_bio(struct inode *inode, block_t blkaddr,
         |                    ^~~~~~~~~~~~~~~~~~
   fs/f2fs/data.c: In function 'f2fs_mpage_readpages':
   fs/f2fs/data.c:2629:58: error: 'vi' undeclared (first use in this function)
    2629 |                 return f2fs_read_data_large_folio(inode, vi, rac, folio);
         |                                                          ^~
   fs/f2fs/data.c:2629:58: note: each undeclared identifier is reported only once for each function it appears in


vim +/fsverity_verify_page +2523 fs/f2fs/data.c

  2449	
  2450	static int f2fs_read_data_large_folio(struct inode *inode,
  2451			struct fsverity_info *vi,
  2452			struct readahead_control *rac, struct folio *folio)
  2453	{
  2454		struct bio *bio = NULL;
  2455		sector_t last_block_in_bio = 0;
  2456		struct f2fs_map_blocks map = {0, };
  2457		pgoff_t index, offset, next_pgofs = 0;
  2458		unsigned max_nr_pages = rac ? readahead_count(rac) :
  2459					folio_nr_pages(folio);
  2460		unsigned nrpages;
  2461		struct f2fs_folio_state *ffs;
  2462		int ret = 0;
  2463		bool folio_in_bio;
  2464	
  2465		if (!IS_IMMUTABLE(inode) || f2fs_compressed_file(inode)) {
  2466			if (folio)
  2467				folio_unlock(folio);
  2468			return -EOPNOTSUPP;
  2469		}
  2470	
  2471		map.m_seg_type = NO_CHECK_TYPE;
  2472	
  2473		if (rac)
  2474			folio = readahead_folio(rac);
  2475	next_folio:
  2476		if (!folio)
  2477			goto out;
  2478	
  2479		folio_in_bio = false;
  2480		index = folio->index;
  2481		offset = 0;
  2482		ffs = NULL;
  2483		nrpages = folio_nr_pages(folio);
  2484	
  2485		for (; nrpages; nrpages--, max_nr_pages--, index++, offset++) {
  2486			sector_t block_nr;
  2487			/*
  2488			 * Map blocks using the previous result first.
  2489			 */
  2490			if (map.m_flags & F2FS_MAP_MAPPED) {
  2491				if (index > map.m_lblk &&
  2492					index < (map.m_lblk + map.m_len))
  2493					goto got_it;
  2494			} else if (index < next_pgofs) {
  2495				/* hole case */
  2496				goto got_it;
  2497			}
  2498	
  2499			/*
  2500			 * Then do more f2fs_map_blocks() calls until we are
  2501			 * done with this page.
  2502			 */
  2503			memset(&map, 0, sizeof(map));
  2504			map.m_next_pgofs = &next_pgofs;
  2505			map.m_seg_type = NO_CHECK_TYPE;
  2506			map.m_lblk = index;
  2507			map.m_len = max_nr_pages;
  2508	
  2509			ret = f2fs_map_blocks(inode, &map, F2FS_GET_BLOCK_DEFAULT);
  2510			if (ret)
  2511				goto err_out;
  2512	got_it:
  2513			if ((map.m_flags & F2FS_MAP_MAPPED)) {
  2514				block_nr = map.m_pblk + index - map.m_lblk;
  2515				if (!f2fs_is_valid_blkaddr(F2FS_I_SB(inode), block_nr,
  2516							DATA_GENERIC_ENHANCE_READ)) {
  2517					ret = -EFSCORRUPTED;
  2518					goto err_out;
  2519				}
  2520			} else {
  2521				folio_zero_range(folio, offset << PAGE_SHIFT, PAGE_SIZE);
  2522				if (f2fs_need_verity(inode, index) &&
> 2523				    !fsverity_verify_page(vi, folio_file_page(folio,
  2524									index))) {
  2525					ret = -EIO;
  2526					goto err_out;
  2527				}
  2528				continue;
  2529			}
  2530	
  2531			/* We must increment read_pages_pending before possible BIOs submitting
  2532			 * to prevent from premature folio_end_read() call on folio
  2533			 */
  2534			if (folio_test_large(folio)) {
  2535				ffs = ffs_find_or_alloc(folio);
  2536	
  2537				/* set the bitmap to wait */
  2538				spin_lock_irq(&ffs->state_lock);
  2539				ffs->read_pages_pending++;
  2540				spin_unlock_irq(&ffs->state_lock);
  2541			}
  2542	
  2543			/*
  2544			 * This page will go to BIO.  Do we need to send this
  2545			 * BIO off first?
  2546			 */
  2547			if (bio && (!page_is_mergeable(F2FS_I_SB(inode), bio,
  2548							last_block_in_bio, block_nr) ||
  2549				!f2fs_crypt_mergeable_bio(bio, inode, index, NULL))) {
  2550	submit_and_realloc:
  2551				f2fs_submit_read_bio(F2FS_I_SB(inode), bio, DATA);
  2552				bio = NULL;
  2553			}
  2554			if (bio == NULL)
> 2555				bio = f2fs_grab_read_bio(inode, vi, block_nr,
  2556						max_nr_pages,
  2557						f2fs_ra_op_flags(rac),
  2558						index, false);
  2559	
  2560			/*
  2561			 * If the page is under writeback, we need to wait for
  2562			 * its completion to see the correct decrypted data.
  2563			 */
  2564			f2fs_wait_on_block_writeback(inode, block_nr);
  2565	
  2566			if (!bio_add_folio(bio, folio, F2FS_BLKSIZE,
  2567						offset << PAGE_SHIFT))
  2568				goto submit_and_realloc;
  2569	
  2570			folio_in_bio = true;
  2571			inc_page_count(F2FS_I_SB(inode), F2FS_RD_DATA);
  2572			f2fs_update_iostat(F2FS_I_SB(inode), NULL, FS_DATA_READ_IO,
  2573					F2FS_BLKSIZE);
  2574			last_block_in_bio = block_nr;
  2575		}
  2576		trace_f2fs_read_folio(folio, DATA);
  2577	err_out:
  2578		if (!folio_in_bio) {
  2579			folio_end_read(folio, !ret);
  2580			if (ret)
  2581				return ret;
  2582		}
  2583		if (rac) {
  2584			folio = readahead_folio(rac);
  2585			goto next_folio;
  2586		}
  2587	out:
  2588		f2fs_submit_read_bio(F2FS_I_SB(inode), bio, DATA);
  2589		if (ret) {
  2590			/* Wait bios and clear uptodate. */
  2591			folio_lock(folio);
  2592			folio_clear_uptodate(folio);
  2593			folio_unlock(folio);
  2594		}
  2595		return ret;
  2596	}
  2597	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

      parent reply	other threads:[~2026-02-04 17:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-03 13:36 linux-next: build failure after merge of the fsverity tree Mark Brown
2026-02-03 16:29 ` Christoph Hellwig
2026-02-03 17:02   ` Mark Brown
2026-02-04 17:39 ` kernel test robot
2026-02-04 17:39 ` kernel test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202602050113.5EtCPNU4-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=broonie@kernel.org \
    --cc=chao@kernel.org \
    --cc=ebiggers@kernel.org \
    --cc=hch@lst.de \
    --cc=jaegeuk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.