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

Reply via email to