[dm-devel] [PATCH v4 09/10] xfs: Implement ->corrupted_range() for XFS

kernel test robot lkp at intel.com
Fri Jun 4 05:22:27 UTC 2021


Hi Shiyang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on xfs-linux/for-next]
[also build test ERROR on dm/for-next linus/master v5.13-rc4]
[cannot apply to hnaz-linux-mm/master next-20210603]
[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]

url:    https://github.com/0day-ci/linux/commits/Shiyang-Ruan/fsdax-introduce-fs-query-to-support-reflink/20210604-092105
base:   https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git for-next
config: csky-randconfig-r014-20210604 (attached as .config)
compiler: csky-linux-gcc (GCC) 9.3.0
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://github.com/0day-ci/linux/commit/8fc6cb02d396487fa3a77fb57f23dcdc978dd3e3
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Shiyang-Ruan/fsdax-introduce-fs-query-to-support-reflink/20210604-092105
        git checkout 8fc6cb02d396487fa3a77fb57f23dcdc978dd3e3
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=csky 

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

All errors (new ones prefixed by >>):

   fs/xfs/xfs_super.c: In function 'xfs_open_devices':
>> fs/xfs/xfs_super.c:400:2: error: implicit declaration of function 'dax_set_holder'; did you mean 'xas_set_order'? [-Werror=implicit-function-declaration]
     400 |  dax_set_holder(dax_ddev, mp->m_super, &fs_dax_holder_ops);
         |  ^~~~~~~~~~~~~~
         |  xas_set_order
   cc1: some warnings being treated as errors


vim +400 fs/xfs/xfs_super.c

   379	
   380	/*
   381	 * The file system configurations are:
   382	 *	(1) device (partition) with data and internal log
   383	 *	(2) logical volume with data and log subvolumes.
   384	 *	(3) logical volume with data, log, and realtime subvolumes.
   385	 *
   386	 * We only have to handle opening the log and realtime volumes here if
   387	 * they are present.  The data subvolume has already been opened by
   388	 * get_sb_bdev() and is stored in sb->s_bdev.
   389	 */
   390	STATIC int
   391	xfs_open_devices(
   392		struct xfs_mount	*mp)
   393	{
   394		struct block_device	*ddev = mp->m_super->s_bdev;
   395		struct dax_device	*dax_ddev = fs_dax_get_by_bdev(ddev);
   396		struct dax_device	*dax_logdev = NULL, *dax_rtdev = NULL;
   397		struct block_device	*logdev = NULL, *rtdev = NULL;
   398		int			error;
   399	
 > 400		dax_set_holder(dax_ddev, mp->m_super, &fs_dax_holder_ops);
   401		/*
   402		 * Open real time and log devices - order is important.
   403		 */
   404		if (mp->m_logname) {
   405			error = xfs_blkdev_get(mp, mp->m_logname, &logdev);
   406			if (error)
   407				goto out;
   408			dax_logdev = fs_dax_get_by_bdev(logdev);
   409			if (dax_logdev != dax_ddev)
   410				dax_set_holder(dax_logdev, mp->m_super,
   411					       &fs_dax_holder_ops);
   412		}
   413	
   414		if (mp->m_rtname) {
   415			error = xfs_blkdev_get(mp, mp->m_rtname, &rtdev);
   416			if (error)
   417				goto out_close_logdev;
   418	
   419			if (rtdev == ddev || rtdev == logdev) {
   420				xfs_warn(mp,
   421		"Cannot mount filesystem with identical rtdev and ddev/logdev.");
   422				error = -EINVAL;
   423				goto out_close_rtdev;
   424			}
   425			dax_rtdev = fs_dax_get_by_bdev(rtdev);
   426			dax_set_holder(dax_rtdev, mp->m_super, &fs_dax_holder_ops);
   427		}
   428	
   429		/*
   430		 * Setup xfs_mount buffer target pointers
   431		 */
   432		error = -ENOMEM;
   433		mp->m_ddev_targp = xfs_alloc_buftarg(mp, ddev, dax_ddev);
   434		if (!mp->m_ddev_targp)
   435			goto out_close_rtdev;
   436	
   437		if (rtdev) {
   438			mp->m_rtdev_targp = xfs_alloc_buftarg(mp, rtdev, dax_rtdev);
   439			if (!mp->m_rtdev_targp)
   440				goto out_free_ddev_targ;
   441		}
   442	
   443		if (logdev && logdev != ddev) {
   444			mp->m_logdev_targp = xfs_alloc_buftarg(mp, logdev, dax_logdev);
   445			if (!mp->m_logdev_targp)
   446				goto out_free_rtdev_targ;
   447		} else {
   448			mp->m_logdev_targp = mp->m_ddev_targp;
   449		}
   450	
   451		return 0;
   452	
   453	 out_free_rtdev_targ:
   454		if (mp->m_rtdev_targp)
   455			xfs_free_buftarg(mp->m_rtdev_targp);
   456	 out_free_ddev_targ:
   457		xfs_free_buftarg(mp->m_ddev_targp);
   458	 out_close_rtdev:
   459		xfs_blkdev_put(rtdev);
   460		fs_put_dax(dax_rtdev);
   461	 out_close_logdev:
   462		if (logdev && logdev != ddev) {
   463			xfs_blkdev_put(logdev);
   464			fs_put_dax(dax_logdev);
   465		}
   466	 out:
   467		fs_put_dax(dax_ddev);
   468		return error;
   469	}
   470	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 24503 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20210604/fa0f9aec/attachment.gz>


More information about the dm-devel mailing list