Re: [PATCH v2] xfs: Add new name to attri/d

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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	
> 




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux