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

From: kernel test robot
Date: Fri Jun 04 2021 - 01:23:02 EST


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@xxxxxxxxx>

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@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip