Re: [PATCH] btrfs: more trivial BTRFS_PATH_AUTO_FREE conversions

Dan Carpenter
2025-08-21T08:21:36Z

Hi Sun,

kernel test robot noticed the following build warnings:

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Sun-YangKai/btrfs-more-trivial-BTRFS_PATH_AUTO_FREE-conversions/20250819-114252
base: v6.17-rc2
patch link: https://lore.kernel.org/r/20250819033819.19826-1-sunk67188%40gmail.com
patch subject: [PATCH] btrfs: more trivial BTRFS_PATH_AUTO_FREE conversions
config: parisc-randconfig-r071-20250821 (https://download.01.org/0day-ci/archive/20250821/202508211534.QmDKCbTm-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 9.5.0

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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202508211534.QmDKCbTm-lkp@intel.com/

smatch warnings:
fs/btrfs/send.c:931 get_inode_info() warn: missing error code? 'ret'

vim +/ret +931 fs/btrfs/send.c

7e93f6dc11d9128 BingJing Chang 2022-08-12 908 static int get_inode_info(struct btrfs_root *root, u64 ino,
7e93f6dc11d9128 BingJing Chang 2022-08-12 909 struct btrfs_inode_info *info)
31db9f7c23fbf7e Alexander Block 2012-07-25 910 {
31db9f7c23fbf7e Alexander Block 2012-07-25 911 int ret;
c8ce1e5fe626333 Sun YangKai 2025-08-19 912 BTRFS_PATH_AUTO_FREE(path);
31db9f7c23fbf7e Alexander Block 2012-07-25 913 struct btrfs_inode_item *ii;
31db9f7c23fbf7e Alexander Block 2012-07-25 914 struct btrfs_key key;
31db9f7c23fbf7e Alexander Block 2012-07-25 915
7e93f6dc11d9128 BingJing Chang 2022-08-12 916 path = alloc_path_for_send();
7e93f6dc11d9128 BingJing Chang 2022-08-12 917 if (!path)
7e93f6dc11d9128 BingJing Chang 2022-08-12 918 return -ENOMEM;
7e93f6dc11d9128 BingJing Chang 2022-08-12 919
31db9f7c23fbf7e Alexander Block 2012-07-25 920 key.objectid = ino;
31db9f7c23fbf7e Alexander Block 2012-07-25 921 key.type = BTRFS_INODE_ITEM_KEY;
31db9f7c23fbf7e Alexander Block 2012-07-25 922 key.offset = 0;
31db9f7c23fbf7e Alexander Block 2012-07-25 923 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
31db9f7c23fbf7e Alexander Block 2012-07-25 924 if (ret) {
3f8a18cc53bd1be Josef Bacik 2014-03-28 925 if (ret > 0)
31db9f7c23fbf7e Alexander Block 2012-07-25 926 ret = -ENOENT;
c8ce1e5fe626333 Sun YangKai 2025-08-19 927 return ret;
31db9f7c23fbf7e Alexander Block 2012-07-25 928 }
31db9f7c23fbf7e Alexander Block 2012-07-25 929
7e93f6dc11d9128 BingJing Chang 2022-08-12 930 if (!info)
c8ce1e5fe626333 Sun YangKai 2025-08-19 @931 return ret;

ret is zero, but it should be an error code.

7e93f6dc11d9128 BingJing Chang 2022-08-12 932
31db9f7c23fbf7e Alexander Block 2012-07-25 933 ii = btrfs_item_ptr(path->nodes[0], path->slots[0],
31db9f7c23fbf7e Alexander Block 2012-07-25 934 struct btrfs_inode_item);
7e93f6dc11d9128 BingJing Chang 2022-08-12 935 info->size = btrfs_inode_size(path->nodes[0], ii);
7e93f6dc11d9128 BingJing Chang 2022-08-12 936 info->gen = btrfs_inode_generation(path->nodes[0], ii);

--
0-DAY CI Kernel Test Service