Hi Nikolay, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on kdave/for-next] [also build test WARNING on v5.8-rc5 next-20200715] [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/Nikolay-Borisov/Convert-seed-devices-to-proper-list-API/20200715-185102 base: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next config: x86_64-allyesconfig (attached as .config) compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 02946de3802d3bc65bc9f2eb9b8d4969b5a7add8) 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 # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): In file included from fs/btrfs/volumes.c:17: fs/btrfs/ctree.h:2271:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers] size_t __const btrfs_get_num_csums(void); ^~~~~~~~ In file included from fs/btrfs/volumes.c:28: fs/btrfs/sysfs.h:16:14: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers] const char * const btrfs_feature_set_name(enum btrfs_feature_set set); ^~~~~~ >> fs/btrfs/volumes.c:1029:6: warning: no previous prototype for function '__btrfs_free_extra_devids' [-Wmissing-prototypes] void __btrfs_free_extra_devids(struct btrfs_fs_devices *fs_devices, int step, ^ fs/btrfs/volumes.c:1029:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void __btrfs_free_extra_devids(struct btrfs_fs_devices *fs_devices, int step, ^ static 3 warnings generated. vim +/__btrfs_free_extra_devids +1029 fs/btrfs/volumes.c 1026 1027 1028 > 1029 void __btrfs_free_extra_devids(struct btrfs_fs_devices *fs_devices, int step, 1030 struct btrfs_device **latest_dev) 1031 { 1032 struct btrfs_device *device, *next; 1033 1034 /* This is the initialized path, it is safe to release the devices. */ 1035 list_for_each_entry_safe(device, next, &fs_devices->devices, dev_list) { 1036 if (test_bit(BTRFS_DEV_STATE_IN_FS_METADATA, 1037 &device->dev_state)) { 1038 if (!test_bit(BTRFS_DEV_STATE_REPLACE_TGT, 1039 &device->dev_state) && 1040 !test_bit(BTRFS_DEV_STATE_MISSING, 1041 &device->dev_state) && 1042 (!*latest_dev || 1043 device->generation > (*latest_dev)->generation)) { 1044 *latest_dev = device; 1045 } 1046 continue; 1047 } 1048 1049 if (device->devid == BTRFS_DEV_REPLACE_DEVID) { 1050 /* 1051 * In the first step, keep the device which has 1052 * the correct fsid and the devid that is used 1053 * for the dev_replace procedure. 1054 * In the second step, the dev_replace state is 1055 * read from the device tree and it is known 1056 * whether the procedure is really active or 1057 * not, which means whether this device is 1058 * used or whether it should be removed. 1059 */ 1060 if (step == 0 || test_bit(BTRFS_DEV_STATE_REPLACE_TGT, 1061 &device->dev_state)) { 1062 continue; 1063 } 1064 } 1065 if (device->bdev) { 1066 blkdev_put(device->bdev, device->mode); 1067 device->bdev = NULL; 1068 fs_devices->open_devices--; 1069 } 1070 if (test_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state)) { 1071 list_del_init(&device->dev_alloc_list); 1072 clear_bit(BTRFS_DEV_STATE_WRITEABLE, &device->dev_state); 1073 if (!test_bit(BTRFS_DEV_STATE_REPLACE_TGT, 1074 &device->dev_state)) 1075 fs_devices->rw_devices--; 1076 } 1077 list_del_init(&device->dev_list); 1078 fs_devices->num_devices--; 1079 btrfs_free_device(device); 1080 } 1081 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org