Hello David Sterba,
This is a semi-automatic email about new static checker warnings.
The patch b4c7c5d50791: "btrfs: get fs_info from block group in
write_pinned_extent_entries" from Mar 20, 2019, leads to the
following Smatch complaint:
fs/btrfs/free-space-cache.c:1052 write_pinned_extent_entries()
warn: variable dereferenced before check 'block_group' (see line 1047)
fs/btrfs/free-space-cache.c
1046 {
1047 struct btrfs_fs_info *fs_info = block_group->fs_info;
^^^^^^^^^^^^^^^^^^^^
The patch adds a dereference
1048 u64 start, extent_start, extent_end, len;
1049 struct extent_io_tree *unpin = NULL;
1050 int ret;
1051
1052 if (!block_group)
^^^^^^^^^^^
But the old code assumed it could be NULL.
1053 return 0;
1054
See also:
fs/btrfs/free-space-cache.c:1319 __btrfs_write_out_cache() warn: variable dereferenced before check 'block_group' (see line 1295)
fs/btrfs/free-space-cache.c:1295 __btrfs_write_out_cache() error: we previously assumed 'block_group' could be null (see line 1253)
regards,
dan carpenter