btrfs: root->fs_info cleanup, add fs_info convenience variables
Hello Jeff Mahoney,
This is a semi-automatic email about new static checker warnings.
The patch 0b246afa62b0: "btrfs: root->fs_info cleanup, add fs_info convenience variables" from Jun 22, 2016, leads to the following Smatch complaint:
fs/btrfs/export.c:238 btrfs_get_name()
warn: variable dereferenced before check 'inode' (see line 226)
fs/btrfs/export.c
225 struct inode *dir = d_inode(parent);
226 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
^^^^^^^^^^^Patch adds dereference.
227 struct btrfs_path *path;
228 struct btrfs_root *root = BTRFS_I(dir)->root;
229 struct btrfs_inode_ref *iref;
230 struct btrfs_root_ref *rref;
231 struct extent_buffer *leaf;
232 unsigned long name_ptr;
233 struct btrfs_key key;
234 int name_len;
235 int ret;
236 u64 ino;
237
238 if (!dir || !inode)
^^^^^
Old code checked for NULL.
239 return -EINVAL;
240
regards,
dan carpenter
Quoted 3 lines · Dan Carpenter
Hello Jeff Mahoney,
This is a semi-automatic email about new static checker warnings.
Hi Dan -
Thanks for the report. We've already seen this one and the right fix is to remove the checks in btrfs_get_name since exportfs won't pass negative dentries. The original reporter has submitted a patch for that.
-Jeff
Quoted 34 lines
The patch
0b246afa62b0: "btrfs:root->fs_infocleanup, addfs_infoconvenience variables" from Jun 22, 2016, leads to the following Smatch complaint:
fs/btrfs/export.c:238btrfs_get_name()
warn: variable dereferenced before check 'inode' (see line 226)
fs/btrfs/export.c225 struct inode *dir = d_inode(parent); 226 struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); ^^^^^^^^^^^Patch adds dereference.
227 struct btrfs_path *path; 228 struct btrfs_root *root = BTRFS_I(dir)->root; 229 struct btrfs_inode_ref *iref; 230 struct btrfs_root_ref *rref; 231 struct extent_buffer *leaf; 232 unsigned long name_ptr; 233 struct btrfs_key key; 234 int name_len; 235 int ret; 236 u64 ino; 237 238 if (!dir || !inode) ^^^^^Old code checked for NULL.
239 return -EINVAL; 240regards,
dan carpenter
Signature · 2 lines
Jeff Mahoney SUSE Labs