Re: [PATCH v4 08/10] md: Implement dax_holder_operations

From: kernel test robot
Date: Fri Jun 04 2021 - 01:49:17 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: h8300-randconfig-r021-20210604 (attached as .config)
compiler: h8300-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/94db8a17905296e4d5bfe93eb5199f477646622a
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 94db8a17905296e4d5bfe93eb5199f477646622a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=h8300

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

All error/warnings (new ones prefixed by >>):

drivers/md/dm.c: In function 'open_table_device':
>> drivers/md/dm.c:784:12: error: implicit declaration of function 'dax_get_holder'; did you mean 'xa_get_order'? [-Werror=implicit-function-declaration]
784 | holders = dax_get_holder(td->dm_dev.dax_dev);
| ^~~~~~~~~~~~~~
| xa_get_order
>> drivers/md/dm.c:784:10: warning: assignment to 'struct list_head *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
784 | holders = dax_get_holder(td->dm_dev.dax_dev);
| ^
>> drivers/md/dm.c:788:3: error: implicit declaration of function 'dax_set_holder'; did you mean 'xas_set_order'? [-Werror=implicit-function-declaration]
788 | dax_set_holder(td->dm_dev.dax_dev, holders, &dm_dax_holder_ops);
| ^~~~~~~~~~~~~~
| xas_set_order
drivers/md/dm.c: In function 'close_table_device':
drivers/md/dm.c:808:10: warning: assignment to 'struct list_head *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
808 | holders = dax_get_holder(td->dm_dev.dax_dev);
| ^
drivers/md/dm.c: In function 'dm_dax_corrputed_range':
>> drivers/md/dm.c:1339:30: warning: initialization of 'struct list_head *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
1339 | struct list_head *holders = dax_get_holder(dax_dev);
| ^~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +784 drivers/md/dm.c

750
751 static char *_dm_claim_ptr = "I belong to device-mapper";
752 static const struct dax_holder_operations dm_dax_holder_ops;
753 struct dm_holder {
754 struct list_head list;
755 struct mapped_device *md;
756 };
757 /*
758 * Open a table device so we can use it as a map destination.
759 */
760 static int open_table_device(struct table_device *td, dev_t dev,
761 struct mapped_device *md)
762 {
763 struct block_device *bdev;
764 struct list_head *holders;
765 struct dm_holder *holder;
766
767 int r;
768
769 BUG_ON(td->dm_dev.bdev);
770
771 bdev = blkdev_get_by_dev(dev, td->dm_dev.mode | FMODE_EXCL, _dm_claim_ptr);
772 if (IS_ERR(bdev))
773 return PTR_ERR(bdev);
774
775 r = bd_link_disk_holder(bdev, dm_disk(md));
776 if (r) {
777 blkdev_put(bdev, td->dm_dev.mode | FMODE_EXCL);
778 return r;
779 }
780
781 td->dm_dev.bdev = bdev;
782 td->dm_dev.dax_dev = dax_get_by_host(bdev->bd_disk->disk_name);
783
> 784 holders = dax_get_holder(td->dm_dev.dax_dev);
785 if (!holders) {
786 holders = kmalloc(sizeof(*holders), GFP_KERNEL);
787 INIT_LIST_HEAD(holders);
> 788 dax_set_holder(td->dm_dev.dax_dev, holders, &dm_dax_holder_ops);
789 }
790 holder = kmalloc(sizeof(*holder), GFP_KERNEL);
791 holder->md = md;
792 list_add_tail(&holder->list, holders);
793
794 return 0;
795 }
796

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

Attachment: .config.gz
Description: application/gzip