All of lore.kernel.org
 help / color / mirror / Atom feed
* [djwong-xfs:vectorized-scrub 244/326] fs/xfs/libxfs/xfs_btree.c:5391: undefined reference to `xfs_rt_resv_alloc_extent'
@ 2021-05-01  8:15 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-05-01  8:15 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 5344 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git vectorized-scrub
head:   69e2e5df9ef7ef56d03034a3558383f8c861c5e5
commit: a6e21f2031c039910649fb2f346aed3a4ea06c64 [244/326] xfs: add realtime rmap btree operations
config: i386-randconfig-c004-20210501 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/commit/?id=a6e21f2031c039910649fb2f346aed3a4ea06c64
        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 a6e21f2031c039910649fb2f346aed3a4ea06c64
        # save the attached .config to linux build tree
        make W=1 W=1 ARCH=i386 

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

All errors (new ones prefixed by >>):

   ld: fs/xfs/libxfs/xfs_btree.o: in function `xfs_btree_alloc_rtmeta_block':
>> fs/xfs/libxfs/xfs_btree.c:5391: undefined reference to `xfs_rt_resv_alloc_extent'
   ld: fs/xfs/libxfs/xfs_btree.o: in function `xfs_btree_free_rtmeta_block':
>> fs/xfs/libxfs/xfs_btree.c:5425: undefined reference to `xfs_rt_resv_free_extent'
   ld: fs/xfs/xfs_fsops.o: in function `xfs_fs_reserve_ag_blocks':
   fs/xfs/xfs_fsops.c:599: undefined reference to `xfs_rt_resv_init'
   ld: fs/xfs/xfs_fsops.o: in function `xfs_fs_unreserve_ag_blocks':
   fs/xfs/xfs_fsops.c:625: undefined reference to `xfs_rt_resv_free'


vim +5391 fs/xfs/libxfs/xfs_btree.c

  5325	
  5326	/* Allocate a block for an inode-rooted realtime metadata btree. */
  5327	int
  5328	xfs_btree_alloc_rtmeta_block(
  5329		struct xfs_btree_cur	*cur,
  5330		union xfs_btree_ptr	*start,
  5331		union xfs_btree_ptr	*new,
  5332		int			*stat)
  5333	{
  5334		struct xfs_alloc_arg	args = { .mp = cur->bc_mp, .tp = cur->bc_tp };
  5335		struct xfs_inode	*ip = cur->bc_ino.ip;
  5336		struct xfs_trans	*tp = cur->bc_tp;
  5337		int			error;
  5338	
  5339		ASSERT(!XFS_NOT_DQATTACHED(cur->bc_mp, ip));
  5340	
  5341		args.fsbno = tp->t_firstblock;
  5342		args.resv = XFS_AG_RESV_RTMETADATA;
  5343		xfs_rmap_ino_bmbt_owner(&args.oinfo, ip->i_ino, cur->bc_ino.whichfork);
  5344	
  5345		if (args.fsbno == NULLFSBLOCK) {
  5346			args.fsbno = be64_to_cpu(start->l);
  5347			args.type = XFS_ALLOCTYPE_START_BNO;
  5348			/*
  5349			 * Make sure there is sufficient room left in the AG to
  5350			 * complete a full tree split for an extent insert.  If
  5351			 * we are converting the middle part of an extent then
  5352			 * we may need space for two tree splits.
  5353			 *
  5354			 * We are relying on the caller to make the correct block
  5355			 * reservation for this operation to succeed.  If the
  5356			 * reservation amount is insufficient then we may fail a
  5357			 * block allocation here and corrupt the filesystem.
  5358			 */
  5359			args.minleft = tp->t_blk_res;
  5360		} else if (tp->t_flags & XFS_TRANS_LOWMODE) {
  5361			args.type = XFS_ALLOCTYPE_START_BNO;
  5362		} else {
  5363			args.type = XFS_ALLOCTYPE_NEAR_BNO;
  5364		}
  5365	
  5366		args.minlen = args.maxlen = args.prod = 1;
  5367		error = xfs_alloc_vextent(&args);
  5368		if (error)
  5369			goto error0;
  5370	
  5371		if (args.fsbno == NULLFSBLOCK && args.minleft) {
  5372			/*
  5373			 * Could not find an AG with enough free space to satisfy
  5374			 * a full btree split.  Try again without minleft and if
  5375			 * successful activate the lowspace algorithm.
  5376			 */
  5377			args.fsbno = 0;
  5378			args.type = XFS_ALLOCTYPE_FIRST_AG;
  5379			args.minleft = 0;
  5380			error = xfs_alloc_vextent(&args);
  5381			if (error)
  5382				goto error0;
  5383			tp->t_flags |= XFS_TRANS_LOWMODE;
  5384		}
  5385		if (args.fsbno == NULLFSBLOCK) {
  5386			*stat = 0;
  5387			return 0;
  5388		}
  5389		ASSERT(args.len == 1);
  5390	
> 5391		xfs_rt_resv_alloc_extent(ip, &args);
  5392		cur->bc_ino.allocated++;
  5393		xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
  5394		xfs_trans_mod_dquot_byino(tp, ip, XFS_TRANS_DQ_BCOUNT, 1);
  5395	
  5396		new->l = cpu_to_be64(args.fsbno);
  5397		*stat = 1;
  5398		return 0;
  5399	
  5400	 error0:
  5401		return error;
  5402	}
  5403	
  5404	/* Free a block from an inode-rooted realtime metadata btree. */
  5405	int
  5406	xfs_btree_free_rtmeta_block(
  5407		struct xfs_btree_cur	*cur,
  5408		struct xfs_buf		*bp)
  5409	{
  5410		struct xfs_owner_info	oinfo;
  5411		struct xfs_mount	*mp = cur->bc_mp;
  5412		struct xfs_inode	*ip = cur->bc_ino.ip;
  5413		struct xfs_trans	*tp = cur->bc_tp;
  5414		xfs_fsblock_t		fsbno = XFS_DADDR_TO_FSB(mp, XFS_BUF_ADDR(bp));
  5415		int			error;
  5416	
  5417		ASSERT(!XFS_NOT_DQATTACHED(mp, ip));
  5418	
  5419		xfs_rmap_ino_bmbt_owner(&oinfo, ip->i_ino, cur->bc_ino.whichfork);
  5420		error = __xfs_free_extent(tp, fsbno, 1, &oinfo, XFS_AG_RESV_RTMETADATA,
  5421				false);
  5422		if (error)
  5423			return error;
  5424	
> 5425		xfs_rt_resv_free_extent(ip, tp, 1);

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38240 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-05-01  8:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-01  8:15 [djwong-xfs:vectorized-scrub 244/326] fs/xfs/libxfs/xfs_btree.c:5391: undefined reference to `xfs_rt_resv_alloc_extent' kernel test robot

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.