lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <70cef6b1-7e2b-45ca-a94e-55521ab34840@huawei.com>
Date: Tue, 24 Jun 2025 09:49:58 +0800
From: Hongbo Li <lihongbo22@...wei.com>
To: kernel test robot <lkp@...el.com>
CC: <llvm@...ts.linux.dev>, <oe-kbuild-all@...ts.linux.dev>,
	<linux-kernel@...r.kernel.org>, Kent Overstreet <kent.overstreet@...ux.dev>
Subject: Re: fs/bcachefs/fs.c:867:12: warning: stack frame size (1056) exceeds
 limit (1024) in 'bch2_rename2'



On 2025/6/24 2:22, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   86731a2a651e58953fc949573895f2fa6d456841
> commit: e614a6c52d32c9c7ff545ca842eb2de4aeb1d2d9 bcachefs: make directory i_size meaningful
> date:   5 months ago
> config: s390-defconfig (https://download.01.org/0day-ci/archive/20250624/202506240200.Fsm6BEST-lkp@intel.com/config)
> compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project 875b36a8742437b95f623bab1e0332562c7b4b3f)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250624/202506240200.Fsm6BEST-lkp@intel.com/reproduce)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@...el.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202506240200.Fsm6BEST-lkp@intel.com/
> 
> All warnings (new ones prefixed by >>):
> 
>     In file included from fs/bcachefs/fs.c:4:
>     In file included from fs/bcachefs/bcachefs.h:188:
>     In file included from include/linux/bio.h:10:
>     In file included from include/linux/blk_types.h:10:
>     In file included from include/linux/bvec.h:10:
>     In file included from include/linux/highmem.h:10:
>     In file included from include/linux/mm.h:2223:
>     include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
>       504 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
>           |                            ~~~~~~~~~~~~~~~~~~~~~ ^
>       505 |                            item];
>           |                            ~~~~
>     include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
>       511 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
>           |                            ~~~~~~~~~~~~~~~~~~~~~ ^
>       512 |                            NR_VM_NUMA_EVENT_ITEMS +
>           |                            ~~~~~~~~~~~~~~~~~~~~~~
>     include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
>       518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
>           |                               ~~~~~~~~~~~ ^ ~~~
>     include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
>       524 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
>           |                            ~~~~~~~~~~~~~~~~~~~~~ ^
>       525 |                            NR_VM_NUMA_EVENT_ITEMS +
>           |                            ~~~~~~~~~~~~~~~~~~~~~~
>>> fs/bcachefs/fs.c:867:12: warning: stack frame size (1056) exceeds limit (1024) in 'bch2_rename2' [-Wframe-larger-than]
>       867 | static int bch2_rename2(struct mnt_idmap *idmap,
>           |            ^
>     5 warnings generated.
> 
> 
> vim +/bch2_rename2 +867 fs/bcachefs/fs.c

It is very common for bcachefs functions with high stack usage, but it 
seems a non issue. The same disscussion in [1], what about use a larger 
stack?

[1] https://lkml.org/lkml/2025/5/22/1058

Thanks,
Hongbo

> 
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   866
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16  @867  static int bch2_rename2(struct mnt_idmap *idmap,
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   868  			struct inode *src_vdir, struct dentry *src_dentry,
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   869  			struct inode *dst_vdir, struct dentry *dst_dentry,
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   870  			unsigned flags)
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   871  {
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   872  	struct bch_fs *c = src_vdir->i_sb->s_fs_info;
> 9638574229e3ae Kent Overstreet   2019-10-02   873  	struct bch_inode_info *src_dir = to_bch_ei(src_vdir);
> 9638574229e3ae Kent Overstreet   2019-10-02   874  	struct bch_inode_info *dst_dir = to_bch_ei(dst_vdir);
> 9638574229e3ae Kent Overstreet   2019-10-02   875  	struct bch_inode_info *src_inode = to_bch_ei(src_dentry->d_inode);
> 9638574229e3ae Kent Overstreet   2019-10-02   876  	struct bch_inode_info *dst_inode = to_bch_ei(dst_dentry->d_inode);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   877  	struct bch_inode_unpacked dst_dir_u, src_dir_u;
> 4645855df01eda Sasha Finkelstein 2024-08-18   878  	struct bch_inode_unpacked src_inode_u, dst_inode_u, *whiteout_inode_u;
> 6bd68ec266ad71 Kent Overstreet   2023-09-12   879  	struct btree_trans *trans;
> 9638574229e3ae Kent Overstreet   2019-10-02   880  	enum bch_rename_mode mode = flags & RENAME_EXCHANGE
> 9638574229e3ae Kent Overstreet   2019-10-02   881  		? BCH_RENAME_EXCHANGE
> 9638574229e3ae Kent Overstreet   2019-10-02   882  		: dst_dentry->d_inode
> 9638574229e3ae Kent Overstreet   2019-10-02   883  		? BCH_RENAME_OVERWRITE : BCH_RENAME;
> 4645855df01eda Sasha Finkelstein 2024-08-18   884  	bool whiteout = !!(flags & RENAME_WHITEOUT);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   885  	int ret;
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   886
> 4645855df01eda Sasha Finkelstein 2024-08-18   887  	if (flags & ~(RENAME_NOREPLACE|RENAME_EXCHANGE|RENAME_WHITEOUT))
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   888  		return -EINVAL;
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   889
> 9638574229e3ae Kent Overstreet   2019-10-02   890  	if (mode == BCH_RENAME_OVERWRITE) {
> 9638574229e3ae Kent Overstreet   2019-10-02   891  		ret = filemap_write_and_wait_range(src_inode->v.i_mapping,
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   892  						   0, LLONG_MAX);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   893  		if (ret)
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   894  			return ret;
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   895  	}
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   896
> 168f4c5fb37513 Kent Overstreet   2019-06-24   897  	bch2_lock_inodes(INODE_UPDATE_LOCK,
> 9638574229e3ae Kent Overstreet   2019-10-02   898  			 src_dir,
> 9638574229e3ae Kent Overstreet   2019-10-02   899  			 dst_dir,
> 9638574229e3ae Kent Overstreet   2019-10-02   900  			 src_inode,
> 9638574229e3ae Kent Overstreet   2019-10-02   901  			 dst_inode);
> 9638574229e3ae Kent Overstreet   2019-10-02   902
> f369de82679f4f Kent Overstreet   2024-07-04   903  	trans = bch2_trans_get(c);
> f369de82679f4f Kent Overstreet   2024-07-04   904
> 112d21fd1a122f Kent Overstreet   2024-06-08   905  	ret   = bch2_subvol_is_ro_trans(trans, src_dir->ei_inum.subvol) ?:
> 112d21fd1a122f Kent Overstreet   2024-06-08   906  		bch2_subvol_is_ro_trans(trans, dst_dir->ei_inum.subvol);
> 0d72ab35a925d6 Kent Overstreet   2023-12-29   907  	if (ret)
> 74ec2f302402c4 Kent Overstreet   2024-10-14   908  		goto err_tx_restart;
> 0d72ab35a925d6 Kent Overstreet   2023-12-29   909
> 9638574229e3ae Kent Overstreet   2019-10-02   910  	if (inode_attr_changing(dst_dir, src_inode, Inode_opt_project)) {
> 9638574229e3ae Kent Overstreet   2019-10-02   911  		ret = bch2_fs_quota_transfer(c, src_inode,
> 9638574229e3ae Kent Overstreet   2019-10-02   912  					     dst_dir->ei_qid,
> 96012e143e699d Kent Overstreet   2018-12-17   913  					     1 << QTYP_PRJ,
> 96012e143e699d Kent Overstreet   2018-12-17   914  					     KEY_TYPE_QUOTA_PREALLOC);
> 96012e143e699d Kent Overstreet   2018-12-17   915  		if (ret)
> 96012e143e699d Kent Overstreet   2018-12-17   916  			goto err;
> 96012e143e699d Kent Overstreet   2018-12-17   917  	}
> 96012e143e699d Kent Overstreet   2018-12-17   918
> 9638574229e3ae Kent Overstreet   2019-10-02   919  	if (mode == BCH_RENAME_EXCHANGE &&
> 9638574229e3ae Kent Overstreet   2019-10-02   920  	    inode_attr_changing(src_dir, dst_inode, Inode_opt_project)) {
> 9638574229e3ae Kent Overstreet   2019-10-02   921  		ret = bch2_fs_quota_transfer(c, dst_inode,
> 9638574229e3ae Kent Overstreet   2019-10-02   922  					     src_dir->ei_qid,
> 96012e143e699d Kent Overstreet   2018-12-17   923  					     1 << QTYP_PRJ,
> 96012e143e699d Kent Overstreet   2018-12-17   924  					     KEY_TYPE_QUOTA_PREALLOC);
> 96012e143e699d Kent Overstreet   2018-12-17   925  		if (ret)
> 96012e143e699d Kent Overstreet   2018-12-17   926  			goto err;
> 96012e143e699d Kent Overstreet   2018-12-17   927  	}
> 4645855df01eda Sasha Finkelstein 2024-08-18   928  retry:
> 4645855df01eda Sasha Finkelstein 2024-08-18   929  	bch2_trans_begin(trans);
> 96012e143e699d Kent Overstreet   2018-12-17   930
> 4645855df01eda Sasha Finkelstein 2024-08-18   931  	ret = bch2_rename_trans(trans,
> 6fed42bb7750e2 Kent Overstreet   2021-03-16   932  				inode_inum(src_dir), &src_dir_u,
> 6fed42bb7750e2 Kent Overstreet   2021-03-16   933  				inode_inum(dst_dir), &dst_dir_u,
> 9638574229e3ae Kent Overstreet   2019-10-02   934  				&src_inode_u,
> 9638574229e3ae Kent Overstreet   2019-10-02   935  				&dst_inode_u,
> 9638574229e3ae Kent Overstreet   2019-10-02   936  				&src_dentry->d_name,
> 9638574229e3ae Kent Overstreet   2019-10-02   937  				&dst_dentry->d_name,
> 4645855df01eda Sasha Finkelstein 2024-08-18   938  				mode);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   939  	if (unlikely(ret))
> 4645855df01eda Sasha Finkelstein 2024-08-18   940  		goto err_tx_restart;
> 4645855df01eda Sasha Finkelstein 2024-08-18   941
> 4645855df01eda Sasha Finkelstein 2024-08-18   942  	if (whiteout) {
> 4645855df01eda Sasha Finkelstein 2024-08-18   943  		whiteout_inode_u = bch2_trans_kmalloc_nomemzero(trans, sizeof(*whiteout_inode_u));
> 4645855df01eda Sasha Finkelstein 2024-08-18   944  		ret = PTR_ERR_OR_ZERO(whiteout_inode_u);
> 4645855df01eda Sasha Finkelstein 2024-08-18   945  		if (unlikely(ret))
> 4645855df01eda Sasha Finkelstein 2024-08-18   946  			goto err_tx_restart;
> 4645855df01eda Sasha Finkelstein 2024-08-18   947  		bch2_inode_init_early(c, whiteout_inode_u);
> 4645855df01eda Sasha Finkelstein 2024-08-18   948
> 4645855df01eda Sasha Finkelstein 2024-08-18   949  		ret = bch2_create_trans(trans,
> 4645855df01eda Sasha Finkelstein 2024-08-18   950  					inode_inum(src_dir), &src_dir_u,
> 4645855df01eda Sasha Finkelstein 2024-08-18   951  					whiteout_inode_u,
> 4645855df01eda Sasha Finkelstein 2024-08-18   952  					&src_dentry->d_name,
> 4645855df01eda Sasha Finkelstein 2024-08-18   953  					from_kuid(i_user_ns(&src_dir->v), current_fsuid()),
> 4645855df01eda Sasha Finkelstein 2024-08-18   954  					from_kgid(i_user_ns(&src_dir->v), current_fsgid()),
> 4645855df01eda Sasha Finkelstein 2024-08-18   955  					S_IFCHR|WHITEOUT_MODE, 0,
> 4645855df01eda Sasha Finkelstein 2024-08-18   956  					NULL, NULL, (subvol_inum) { 0 }, 0) ?:
> 4645855df01eda Sasha Finkelstein 2024-08-18   957  		      bch2_quota_acct(c, bch_qid(whiteout_inode_u), Q_INO, 1,
> 4645855df01eda Sasha Finkelstein 2024-08-18   958  				      KEY_TYPE_QUOTA_PREALLOC);
> 4645855df01eda Sasha Finkelstein 2024-08-18   959  		if (unlikely(ret))
> 4645855df01eda Sasha Finkelstein 2024-08-18   960  			goto err_tx_restart;
> 4645855df01eda Sasha Finkelstein 2024-08-18   961  	}
> 4645855df01eda Sasha Finkelstein 2024-08-18   962
> 4645855df01eda Sasha Finkelstein 2024-08-18   963  	ret = bch2_trans_commit(trans, NULL, NULL, 0);
> 4645855df01eda Sasha Finkelstein 2024-08-18   964  	if (unlikely(ret)) {
> 4645855df01eda Sasha Finkelstein 2024-08-18   965  err_tx_restart:
> 4645855df01eda Sasha Finkelstein 2024-08-18   966  		if (bch2_err_matches(ret, BCH_ERR_transaction_restart))
> 4645855df01eda Sasha Finkelstein 2024-08-18   967  			goto retry;
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   968  		goto err;
> 4645855df01eda Sasha Finkelstein 2024-08-18   969  	}
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   970
> 9638574229e3ae Kent Overstreet   2019-10-02   971  	BUG_ON(src_inode->v.i_ino != src_inode_u.bi_inum);
> 9638574229e3ae Kent Overstreet   2019-10-02   972  	BUG_ON(dst_inode &&
> 9638574229e3ae Kent Overstreet   2019-10-02   973  	       dst_inode->v.i_ino != dst_inode_u.bi_inum);
> 9638574229e3ae Kent Overstreet   2019-10-02   974
> 6bd68ec266ad71 Kent Overstreet   2023-09-12   975  	bch2_inode_update_after_write(trans, src_dir, &src_dir_u,
> e614a6c52d32c9 Hongbo Li         2025-01-07   976  				      ATTR_MTIME|ATTR_CTIME|ATTR_SIZE);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   977
> 68a2054d88f7cd Kent Overstreet   2021-11-05   978  	if (src_dir != dst_dir)
> 6bd68ec266ad71 Kent Overstreet   2023-09-12   979  		bch2_inode_update_after_write(trans, dst_dir, &dst_dir_u,
> e614a6c52d32c9 Hongbo Li         2025-01-07   980  					      ATTR_MTIME|ATTR_CTIME|ATTR_SIZE);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   981
> 6bd68ec266ad71 Kent Overstreet   2023-09-12   982  	bch2_inode_update_after_write(trans, src_inode, &src_inode_u,
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   983  				      ATTR_CTIME);
> 9638574229e3ae Kent Overstreet   2019-10-02   984
> 68a2054d88f7cd Kent Overstreet   2021-11-05   985  	if (dst_inode)
> 6bd68ec266ad71 Kent Overstreet   2023-09-12   986  		bch2_inode_update_after_write(trans, dst_inode, &dst_inode_u,
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   987  					      ATTR_CTIME);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16   988  err:
> 6bd68ec266ad71 Kent Overstreet   2023-09-12   989  	bch2_trans_put(trans);
> 96012e143e699d Kent Overstreet   2018-12-17   990
> 9638574229e3ae Kent Overstreet   2019-10-02   991  	bch2_fs_quota_transfer(c, src_inode,
> 9638574229e3ae Kent Overstreet   2019-10-02   992  			       bch_qid(&src_inode->ei_inode),
> 96012e143e699d Kent Overstreet   2018-12-17   993  			       1 << QTYP_PRJ,
> 96012e143e699d Kent Overstreet   2018-12-17   994  			       KEY_TYPE_QUOTA_NOCHECK);
> 9638574229e3ae Kent Overstreet   2019-10-02   995  	if (dst_inode)
> 9638574229e3ae Kent Overstreet   2019-10-02   996  		bch2_fs_quota_transfer(c, dst_inode,
> 9638574229e3ae Kent Overstreet   2019-10-02   997  				       bch_qid(&dst_inode->ei_inode),
> 96012e143e699d Kent Overstreet   2018-12-17   998  				       1 << QTYP_PRJ,
> 96012e143e699d Kent Overstreet   2018-12-17   999  				       KEY_TYPE_QUOTA_NOCHECK);
> 96012e143e699d Kent Overstreet   2018-12-17  1000
> 168f4c5fb37513 Kent Overstreet   2019-06-24  1001  	bch2_unlock_inodes(INODE_UPDATE_LOCK,
> 9638574229e3ae Kent Overstreet   2019-10-02  1002  			   src_dir,
> 9638574229e3ae Kent Overstreet   2019-10-02  1003  			   dst_dir,
> 9638574229e3ae Kent Overstreet   2019-10-02  1004  			   src_inode,
> 9638574229e3ae Kent Overstreet   2019-10-02  1005  			   dst_inode);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16  1006
> 1a1c93e7f81417 Kent Overstreet   2024-02-09  1007  	return bch2_err_class(ret);
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16  1008  }
> 1c6fdbd8f2465d Kent Overstreet   2017-03-16  1009
> 
> :::::: The code at line 867 was first introduced by commit
> :::::: 1c6fdbd8f2465ddfb73a01ec620cbf3d14044e1a bcachefs: Initial commit
> 
> :::::: TO: Kent Overstreet <kent.overstreet@...il.com>
> :::::: CC: Kent Overstreet <kent.overstreet@...ux.dev>
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ