Re: [PATCH 2/3] xfs: convert perag lookup to xarray

From: kernel test robot
Date: Tue Aug 13 2024 - 02:38:28 EST


Hi Christoph,

kernel test robot noticed the following build warnings:

[auto build test WARNING on xfs-linux/for-next]
[also build test WARNING on akpm-mm/mm-nonmm-unstable linus/master v6.11-rc3 next-20240813]
[cannot apply to djwong-xfs/djwong-devel]
[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/Christoph-Hellwig/xfs-convert-perag-lookup-to-xarray/20240812-183447
base: https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
patch link: https://lore.kernel.org/r/20240812063143.3806677-3-hch%40lst.de
patch subject: [PATCH 2/3] xfs: convert perag lookup to xarray
config: x86_64-randconfig-122-20240813 (https://download.01.org/0day-ci/archive/20240813/202408131403.L5SrjEa7-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240813/202408131403.L5SrjEa7-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408131403.L5SrjEa7-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> fs/xfs/xfs_icache.c:1776:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got unsigned int enum xfs_icwalk_goal goal @@
fs/xfs/xfs_icache.c:1776:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1776:9: sparse: got unsigned int enum xfs_icwalk_goal goal
>> fs/xfs/xfs_icache.c:1776:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got unsigned int enum xfs_icwalk_goal goal @@
fs/xfs/xfs_icache.c:1776:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1776:9: sparse: got unsigned int enum xfs_icwalk_goal goal
>> fs/xfs/xfs_icache.c:244:51: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got unsigned int tag @@
fs/xfs/xfs_icache.c:244:51: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:244:51: sparse: got unsigned int tag
fs/xfs/xfs_icache.c:286:53: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got unsigned int tag @@
fs/xfs/xfs_icache.c:286:53: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:286:53: sparse: got unsigned int tag
>> fs/xfs/xfs_icache.c:1379:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got int @@
fs/xfs/xfs_icache.c:1379:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1379:9: sparse: got int
>> fs/xfs/xfs_icache.c:1379:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got int @@
fs/xfs/xfs_icache.c:1379:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1379:9: sparse: got int
fs/xfs/xfs_icache.c:1509:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got int @@
fs/xfs/xfs_icache.c:1509:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1509:9: sparse: got int
fs/xfs/xfs_icache.c:1509:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got int @@
fs/xfs/xfs_icache.c:1509:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1509:9: sparse: got int
fs/xfs/xfs_icache.c:1515:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got int @@
fs/xfs/xfs_icache.c:1515:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1515:9: sparse: got int
fs/xfs/xfs_icache.c:1515:9: sparse: sparse: incorrect type in argument 4 (different base types) @@ expected restricted xa_mark_t [usertype] @@ got int @@
fs/xfs/xfs_icache.c:1515:9: sparse: expected restricted xa_mark_t [usertype]
fs/xfs/xfs_icache.c:1515:9: sparse: got int
fs/xfs/xfs_icache.c: note: in included file (through include/linux/rbtree.h, include/linux/mm_types.h, include/linux/mmzone.h, ...):
include/linux/rcupdate.h:869:25: sparse: sparse: context imbalance in 'xfs_iget_recycle' - unexpected unlock
fs/xfs/xfs_icache.c:580:28: sparse: sparse: context imbalance in 'xfs_iget_cache_hit' - different lock contexts for basic block

vim +1776 fs/xfs/xfs_icache.c

1762
1763 /* Walk all incore inodes to achieve a given goal. */
1764 static int
1765 xfs_icwalk(
1766 struct xfs_mount *mp,
1767 enum xfs_icwalk_goal goal,
1768 struct xfs_icwalk *icw)
1769 {
1770 struct xfs_perag *pag;
1771 int error = 0;
1772 int last_error = 0;
1773 unsigned long index = 0;
1774
1775 rcu_read_lock();
> 1776 xa_for_each_marked(&mp->m_perags, index, pag, goal) {
1777 if (!atomic_inc_not_zero(&pag->pag_active_ref))
1778 continue;
1779 rcu_read_unlock();
1780
1781 error = xfs_icwalk_ag(pag, goal, icw);
1782 xfs_perag_rele(pag);
1783
1784 rcu_read_lock();
1785 if (error) {
1786 last_error = error;
1787 if (error == -EFSCORRUPTED)
1788 break;
1789 }
1790 }
1791 rcu_read_unlock();
1792
1793 return last_error;
1794 BUILD_BUG_ON(XFS_ICWALK_PRIVATE_FLAGS & XFS_ICWALK_FLAGS_VALID);
1795 }
1796

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