On Wed, 2022-08-31 at 00:31 +0800, kernel test robot wrote: > Hi Allison, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on v6.0-rc3] > [also build test ERROR on linus/master next-20220830] > [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://urldefense.com/v3/__https://git-scm.com/docs/git-format-patch*_base_tree_information__;Iw!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANqhTd_uQ$ ] > > url: > https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commits/Allison-Henderson/xfs-Add-new-name-to-attri-d/20220830-053816__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANAw_F4ME$ > > base: b90cb1053190353cc30f0fef0ef1f378ccc063c5 > config: x86_64-rhel-8.3-kselftests ( > https://urldefense.com/v3/__https://download.01.org/0day-ci/archive/20220831/202208310018.1wKCQHzH-lkp@xxxxxxxxx/config__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANc7fxoPo$ > ) > compiler: gcc-11 (Debian 11.3.0-5) 11.3.0 > reproduce (this is a W=1 build): > # > https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux/commit/68f33e68647f25b811773b237669cf26e6b43382__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANaktysnU$ > > git remote add linux-review > https://urldefense.com/v3/__https://github.com/intel-lab-lkp/linux__;!!ACWV5N9M2RV99hQ!P_ML_BJdQByB_s-n0ArO4YhQL5J5odeU-wn7Z_WCCcblbKqP8g51z8T-Yrx9v7evOofMkoANKKi62kA$ > > git fetch --no-tags linux-review Allison-Henderson/xfs-Add- > new-name-to-attri-d/20220830-053816 > git checkout 68f33e68647f25b811773b237669cf26e6b43382 > # save the config file > mkdir build_dir && cp config build_dir/.config > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash > arch/x86/entry/vdso/ fs/xfs/ > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All errors (new ones prefixed by >>): > > fs/xfs/xfs_attr_item.c: In function > 'xlog_recover_attri_commit_pass2': > fs/xfs/xfs_attr_item.c:824:45: warning: passing argument 2 of > 'xfs_attr_namecheck' makes integer from pointer without a cast [- > Wint-conversion] > 824 | if (!xfs_attr_namecheck(mp, attr_nname, > | ^~~~~~~~~~ > | | > | const void * > In file included from fs/xfs/xfs_attr_item.c:22: > fs/xfs/libxfs/xfs_attr.h:550:50: note: expected 'size_t' {aka > 'long unsigned int'} but argument is of type 'const void *' > 550 | bool xfs_attr_namecheck(const void *name, size_t length); > | ~~~~~~~^~~~~~ > > > fs/xfs/xfs_attr_item.c:824:22: error: too many arguments to > > > function 'xfs_attr_namecheck' > 824 | if (!xfs_attr_namecheck(mp, attr_nname, > | ^~~~~~~~~~~~~~~~~~ > In file included from fs/xfs/xfs_attr_item.c:22: > fs/xfs/libxfs/xfs_attr.h:550:6: note: declared here > 550 | bool xfs_attr_namecheck(const void *name, size_t length); > | ^~~~~~~~~~~~~~~~~~ > > > vim +/xfs_attr_namecheck +824 fs/xfs/xfs_attr_item.c > > 756 > 757 STATIC int > 758 xlog_recover_attri_commit_pass2( > 759 struct xlog *log, > 760 struct list_head *buffer_list, > 761 struct xlog_recover_item *item, > 762 xfs_lsn_t lsn) > 763 { > 764 struct xfs_mount *mp = log- > >l_mp; > 765 struct xfs_attri_log_item *attrip; > 766 struct xfs_attri_log_format *attri_formatp; > 767 struct xfs_attri_log_nameval *nv; > 768 const void *attr_value = > NULL; > 769 const void *attr_name; > 770 const void *attr_nname = > NULL; > 771 int i = 0; > 772 int op, error = 0; > 773 > 774 if (item->ri_total == 0) { > 775 XFS_ERROR_REPORT(__func__, > XFS_ERRLEVEL_LOW, mp); > 776 return -EFSCORRUPTED; > 777 } > 778 > 779 attri_formatp = item->ri_buf[i].i_addr; > 780 i++; > 781 > 782 op = attri_formatp->alfi_op_flags & > XFS_ATTRI_OP_FLAGS_TYPE_MASK; > 783 switch (op) { > 784 case XFS_ATTRI_OP_FLAGS_SET: > 785 case XFS_ATTRI_OP_FLAGS_REPLACE: > 786 if (item->ri_total != 3) > 787 error = -EFSCORRUPTED; > 788 break; > 789 case XFS_ATTRI_OP_FLAGS_REMOVE: > 790 if (item->ri_total != 2) > 791 error = -EFSCORRUPTED; > 792 break; > 793 case XFS_ATTRI_OP_FLAGS_NVREPLACE: > 794 if (item->ri_total != 4) > 795 error = -EFSCORRUPTED; > 796 break; > 797 default: > 798 error = -EFSCORRUPTED; > 799 } > 800 > 801 if (error) { > 802 XFS_ERROR_REPORT(__func__, > XFS_ERRLEVEL_LOW, mp); > 803 return error; > 804 } > 805 > 806 /* Validate xfs_attri_log_format before the > large memory allocation */ > 807 if (!xfs_attri_validate(mp, attri_formatp)) { > 808 XFS_ERROR_REPORT(__func__, > XFS_ERRLEVEL_LOW, mp); > 809 return -EFSCORRUPTED; > 810 } > 811 > 812 attr_name = item->ri_buf[i].i_addr; > 813 i++; > 814 > 815 if (!xfs_attr_namecheck(attr_name, > attri_formatp->alfi_name_len)) { > 816 XFS_ERROR_REPORT(__func__, > XFS_ERRLEVEL_LOW, mp); > 817 return -EFSCORRUPTED; > 818 } > 819 > 820 if (attri_formatp->alfi_nname_len) { > 821 attr_nname = item->ri_buf[i].i_addr; > 822 i++; > 823 > > 824 if (!xfs_attr_namecheck(mp, attr_nname, > 825 attri_formatp- > >alfi_nname_len, > 826 attri_formatp- > >alfi_attr_filter)) { Oops, this signature change belongs to parent pointers. Will separate... > 827 XFS_ERROR_REPORT(__func__, > XFS_ERRLEVEL_LOW, mp); > 828 return -EFSCORRUPTED; > 829 } > 830 } > 831 > 832 if (attri_formatp->alfi_value_len) > 833 attr_value = item->ri_buf[i].i_addr; > 834 > 835 /* > 836 * Memory alloc failure will cause replay to > abort. We attach the > 837 * name/value buffer to the recovered incore > log item and drop our > 838 * reference. > 839 */ > 840 nv = xfs_attri_log_nameval_alloc(attr_name, > 841 attri_formatp->alfi_name_len, > attr_nname, > 842 attri_formatp->alfi_nname_len, > attr_value, > 843 attri_formatp->alfi_value_len); > 844 if (!nv) > 845 return -ENOMEM; > 846 > 847 attrip = xfs_attri_init(mp, nv); > 848 error = xfs_attri_copy_format(&item->ri_buf[0], > &attrip->attri_format); > 849 if (error) > 850 goto out; > 851 > 852 /* > 853 * The ATTRI has two references. One for the > ATTRD and one for ATTRI to > 854 * ensure it makes it into the AIL. Insert the > ATTRI into the AIL > 855 * directly and drop the ATTRI reference. Note > that > 856 * xfs_trans_ail_update() drops the AIL lock. > 857 */ > 858 xfs_trans_ail_insert(log->l_ailp, &attrip- > >attri_item, lsn); > 859 xfs_attri_release(attrip); > 860 xfs_attri_log_nameval_put(nv); > 861 return 0; > 862 out: > 863 xfs_attri_item_free(attrip); > 864 xfs_attri_log_nameval_put(nv); > 865 return error; > 866 } > 867 >