[djwong-xfs:vectorized-scrub 38/396] fs/xfs/scrub/agheader_repair.c:585:2: error: implicit declaration of function 'xbitmap_walk'

From: kernel test robot
Date: Thu Apr 14 2022 - 11:32:50 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git vectorized-scrub
head: bd756ef7af68274b79308166ee64949d288be861
commit: d8273f3634d00732c204ba1c112bf1b9efcc6e4d [38/396] xfs: make AGFL repair function avoid crosslinked blocks
config: hexagon-buildonly-randconfig-r002-20220413 (https://download.01.org/0day-ci/archive/20220414/202204142115.5hNAAWHG-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project fe2478d44e4f7f191c43fef629ac7a23d0251e72)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/commit/?id=d8273f3634d00732c204ba1c112bf1b9efcc6e4d
git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
git fetch --no-tags djwong-xfs vectorized-scrub
git checkout d8273f3634d00732c204ba1c112bf1b9efcc6e4d
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

Note: the djwong-xfs/vectorized-scrub HEAD bd756ef7af68274b79308166ee64949d288be861 builds fine.
It only hurts bisectability.

All errors (new ones prefixed by >>):

>> fs/xfs/scrub/agheader_repair.c:585:2: error: implicit declaration of function 'xbitmap_walk' [-Werror,-Wimplicit-function-declaration]
xbitmap_walk(agfl_extents, xrep_agfl_check_extent, &ra);
^
1 error generated.


vim +/xbitmap_walk +585 fs/xfs/scrub/agheader_repair.c

525
526 /*
527 * Map out all the non-AGFL OWN_AG space in this AG so that we can deduce
528 * which blocks belong to the AGFL.
529 *
530 * Compute the set of old AGFL blocks by subtracting from the list of OWN_AG
531 * blocks the list of blocks owned by all other OWN_AG metadata (bnobt, cntbt,
532 * rmapbt). These are the old AGFL blocks, so return that list and the number
533 * of blocks we're actually going to put back on the AGFL.
534 */
535 STATIC int
536 xrep_agfl_collect_blocks(
537 struct xfs_scrub *sc,
538 struct xfs_buf *agf_bp,
539 struct xbitmap *agfl_extents,
540 xfs_agblock_t *flcount)
541 {
542 struct xrep_agfl ra;
543 struct xfs_mount *mp = sc->mp;
544 struct xfs_btree_cur *cur;
545 int error;
546
547 ra.sc = sc;
548 ra.freesp = agfl_extents;
549 xbitmap_init(&ra.agmetablocks);
550 xbitmap_init(&ra.crossed);
551
552 /* Find all space used by the free space btrees & rmapbt. */
553 cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
554 error = xfs_rmap_query_all(cur, xrep_agfl_walk_rmap, &ra);
555 xfs_btree_del_cursor(cur, error);
556 if (error)
557 goto out_bmp;
558
559 /* Find all blocks currently being used by the bnobt. */
560 cur = xfs_allocbt_init_cursor(mp, sc->tp, agf_bp,
561 sc->sa.pag, XFS_BTNUM_BNO);
562 error = xbitmap_set_btblocks(&ra.agmetablocks, cur);
563 xfs_btree_del_cursor(cur, error);
564 if (error)
565 goto out_bmp;
566
567 /* Find all blocks currently being used by the cntbt. */
568 cur = xfs_allocbt_init_cursor(mp, sc->tp, agf_bp,
569 sc->sa.pag, XFS_BTNUM_CNT);
570 error = xbitmap_set_btblocks(&ra.agmetablocks, cur);
571 xfs_btree_del_cursor(cur, error);
572 if (error)
573 goto out_bmp;
574
575 /*
576 * Drop the freesp meta blocks that are in use by btrees.
577 * The remaining blocks /should/ be AGFL blocks.
578 */
579 error = xbitmap_disunion(agfl_extents, &ra.agmetablocks);
580 if (error)
581 goto out_bmp;
582
583 /* Strike out the blocks that are cross-linked. */
584 ra.rmap_cur = xfs_rmapbt_init_cursor(mp, sc->tp, agf_bp, sc->sa.pag);
> 585 xbitmap_walk(agfl_extents, xrep_agfl_check_extent, &ra);
586 xfs_btree_del_cursor(ra.rmap_cur, 0);
587 error = xbitmap_disunion(agfl_extents, &ra.crossed);
588 if (error)
589 goto out_bmp;
590
591 /*
592 * Calculate the new AGFL size. If we found more blocks than fit in
593 * the AGFL we'll free them later.
594 */
595 *flcount = min_t(uint64_t, xbitmap_hweight(agfl_extents),
596 xfs_agfl_size(mp));
597
598 out_bmp:
599 xbitmap_destroy(&ra.crossed);
600 xbitmap_destroy(&ra.agmetablocks);
601 return error;
602 }
603

--
0-DAY CI Kernel Test Service
https://01.org/lkp