From: kernel test robot <lkp@intel.com>
To: Kent Overstreet <kent.overstreet@linux.dev>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [koverstreet-bcachefs:bcachefs-testing 251/252] fs/bcachefs/fs.c:960:8: warning: variable 'trans' is used uninitialized whenever 'if' condition is true
Date: Tue, 20 May 2025 14:32:21 +0800 [thread overview]
Message-ID: <202505201434.jPrDJIPG-lkp@intel.com> (raw)
tree: https://github.com/koverstreet/bcachefs bcachefs-testing
head: 0d62becef614036a50005eca81fb5bd0b0790fb0
commit: ba3508b68bd71545e1d7eb062ebb0ee33fb1345a [251/252] bcachefs: Hook up d_casefold_enable()
config: hexagon-randconfig-002-20250520 (https://download.01.org/0day-ci/archive/20250520/202505201434.jPrDJIPG-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250520/202505201434.jPrDJIPG-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202505201434.jPrDJIPG-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/bcachefs/fs.c:960:8: warning: variable 'trans' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
960 | if (ret)
| ^~~
fs/bcachefs/fs.c:1051:17: note: uninitialized use occurs here
1051 | bch2_trans_put(trans);
| ^~~~~
fs/bcachefs/fs.c:960:4: note: remove the 'if' if its condition is always false
960 | if (ret)
| ^~~~~~~~
961 | goto err;
| ~~~~~~~~
fs/bcachefs/fs.c:953:8: warning: variable 'trans' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
953 | if (ret)
| ^~~
fs/bcachefs/fs.c:1051:17: note: uninitialized use occurs here
1051 | bch2_trans_put(trans);
| ^~~~~
fs/bcachefs/fs.c:953:4: note: remove the 'if' if its condition is always false
953 | if (ret)
| ^~~~~~~~
954 | goto err;
| ~~~~~~~~
fs/bcachefs/fs.c:926:27: note: initialize the variable 'trans' to silence this warning
926 | struct btree_trans *trans;
| ^
| = NULL
2 warnings generated.
vim +960 fs/bcachefs/fs.c
911
912 static int bch2_rename2(struct mnt_idmap *idmap,
913 struct inode *src_vdir, struct dentry *src_dentry,
914 struct inode *dst_vdir, struct dentry *dst_dentry,
915 unsigned flags)
916 {
917 struct bch_fs *c = src_vdir->i_sb->s_fs_info;
918 struct bch_inode_info *src_dir = to_bch_ei(src_vdir);
919 struct bch_inode_info *dst_dir = to_bch_ei(dst_vdir);
920 struct bch_inode_info *src_inode = to_bch_ei(src_dentry->d_inode);
921 struct bch_inode_info *dst_inode = to_bch_ei(dst_dentry->d_inode);
922 struct bch_inode_unpacked dst_dir_u, src_dir_u;
923 struct bch_inode_unpacked src_inode_u, dst_inode_u, *whiteout_inode_u;
924 struct d_casefold_enable casefold_enable_src = {};
925 struct d_casefold_enable casefold_enable_dst = {};
926 struct btree_trans *trans;
927 enum bch_rename_mode mode = flags & RENAME_EXCHANGE
928 ? BCH_RENAME_EXCHANGE
929 : dst_dentry->d_inode
930 ? BCH_RENAME_OVERWRITE : BCH_RENAME;
931 bool whiteout = !!(flags & RENAME_WHITEOUT);
932 int ret;
933
934 if (flags & ~(RENAME_NOREPLACE|RENAME_EXCHANGE|RENAME_WHITEOUT))
935 return -EINVAL;
936
937 if (mode == BCH_RENAME_OVERWRITE) {
938 ret = filemap_write_and_wait_range(src_inode->v.i_mapping,
939 0, LLONG_MAX);
940 if (ret)
941 return ret;
942 }
943
944 bch2_lock_inodes(INODE_UPDATE_LOCK,
945 src_dir,
946 dst_dir,
947 src_inode,
948 dst_inode);
949
950 if (src_dir != dst_dir) {
951 if (bch2_inode_casefold(c, &src_inode->ei_inode)) {
952 ret = d_casefold_enable(dst_dentry, &casefold_enable_dst);
953 if (ret)
954 goto err;
955 }
956
957 if (mode == BCH_RENAME_EXCHANGE &&
958 bch2_inode_casefold(c, &dst_inode->ei_inode)) {
959 ret = d_casefold_enable(src_dentry, &casefold_enable_src);
> 960 if (ret)
961 goto err;
962 }
963 }
964
965 trans = bch2_trans_get(c);
966
967 ret = bch2_subvol_is_ro_trans(trans, src_dir->ei_inum.subvol) ?:
968 bch2_subvol_is_ro_trans(trans, dst_dir->ei_inum.subvol);
969 if (ret)
970 goto err_tx_restart;
971
972 if (inode_attr_changing(dst_dir, src_inode, Inode_opt_project)) {
973 ret = bch2_fs_quota_transfer(c, src_inode,
974 dst_dir->ei_qid,
975 1 << QTYP_PRJ,
976 KEY_TYPE_QUOTA_PREALLOC);
977 if (ret)
978 goto err;
979 }
980
981 if (mode == BCH_RENAME_EXCHANGE &&
982 inode_attr_changing(src_dir, dst_inode, Inode_opt_project)) {
983 ret = bch2_fs_quota_transfer(c, dst_inode,
984 src_dir->ei_qid,
985 1 << QTYP_PRJ,
986 KEY_TYPE_QUOTA_PREALLOC);
987 if (ret)
988 goto err;
989 }
990 retry:
991 bch2_trans_begin(trans);
992
993 ret = bch2_rename_trans(trans,
994 inode_inum(src_dir), &src_dir_u,
995 inode_inum(dst_dir), &dst_dir_u,
996 &src_inode_u,
997 &dst_inode_u,
998 &src_dentry->d_name,
999 &dst_dentry->d_name,
1000 mode);
1001 if (unlikely(ret))
1002 goto err_tx_restart;
1003
1004 if (whiteout) {
1005 whiteout_inode_u = bch2_trans_kmalloc_nomemzero(trans, sizeof(*whiteout_inode_u));
1006 ret = PTR_ERR_OR_ZERO(whiteout_inode_u);
1007 if (unlikely(ret))
1008 goto err_tx_restart;
1009 bch2_inode_init_early(c, whiteout_inode_u);
1010
1011 ret = bch2_create_trans(trans,
1012 inode_inum(src_dir), &src_dir_u,
1013 whiteout_inode_u,
1014 &src_dentry->d_name,
1015 from_kuid(i_user_ns(&src_dir->v), current_fsuid()),
1016 from_kgid(i_user_ns(&src_dir->v), current_fsgid()),
1017 S_IFCHR|WHITEOUT_MODE, 0,
1018 NULL, NULL, (subvol_inum) { 0 }, 0) ?:
1019 bch2_quota_acct(c, bch_qid(whiteout_inode_u), Q_INO, 1,
1020 KEY_TYPE_QUOTA_PREALLOC);
1021 if (unlikely(ret))
1022 goto err_tx_restart;
1023 }
1024
1025 ret = bch2_trans_commit(trans, NULL, NULL, 0);
1026 if (unlikely(ret)) {
1027 err_tx_restart:
1028 if (bch2_err_matches(ret, BCH_ERR_transaction_restart))
1029 goto retry;
1030 goto err;
1031 }
1032
1033 BUG_ON(src_inode->v.i_ino != src_inode_u.bi_inum);
1034 BUG_ON(dst_inode &&
1035 dst_inode->v.i_ino != dst_inode_u.bi_inum);
1036
1037 bch2_inode_update_after_write(trans, src_dir, &src_dir_u,
1038 ATTR_MTIME|ATTR_CTIME|ATTR_SIZE);
1039
1040 if (src_dir != dst_dir)
1041 bch2_inode_update_after_write(trans, dst_dir, &dst_dir_u,
1042 ATTR_MTIME|ATTR_CTIME|ATTR_SIZE);
1043
1044 bch2_inode_update_after_write(trans, src_inode, &src_inode_u,
1045 ATTR_CTIME);
1046
1047 if (dst_inode)
1048 bch2_inode_update_after_write(trans, dst_inode, &dst_inode_u,
1049 ATTR_CTIME);
1050 err:
1051 bch2_trans_put(trans);
1052
1053 bch2_fs_quota_transfer(c, src_inode,
1054 bch_qid(&src_inode->ei_inode),
1055 1 << QTYP_PRJ,
1056 KEY_TYPE_QUOTA_NOCHECK);
1057 if (dst_inode)
1058 bch2_fs_quota_transfer(c, dst_inode,
1059 bch_qid(&dst_inode->ei_inode),
1060 1 << QTYP_PRJ,
1061 KEY_TYPE_QUOTA_NOCHECK);
1062
1063 bch2_unlock_inodes(INODE_UPDATE_LOCK,
1064 src_dir,
1065 dst_dir,
1066 src_inode,
1067 dst_inode);
1068
1069 d_casefold_enable_commit(&casefold_enable_dst, ret);
1070 d_casefold_enable_commit(&casefold_enable_src, ret);
1071
1072 return bch2_err_class(ret);
1073 }
1074
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2025-05-20 6:32 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202505201434.jPrDJIPG-lkp@intel.com \
--to=lkp@intel.com \
--cc=kent.overstreet@linux.dev \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox