:::::: 
:::::: Manual check reason: "low confidence static check warning: 
fs/btrfs/delayed-inode.c:1885:24: warning: Uninitialized variables: 
delayed_node.inode_id, delayed_node.bytes_reserved, delayed_node.root, 
delayed_node.n_list, delayed_node.p_list, delayed_node.ins_root, 
delayed_node.del_root, delayed_node.mutex, delayed_node.inode_item, 
delayed_node.index_cnt, delayed_node.flags, delayed_node.count [uninitvar]"
:::::: 

CC: kbuild-...@lists.01.org
BCC: l...@intel.com
CC: linux-ker...@vger.kernel.org
TO: Gabriel Niebler <gnieb...@suse.com>
CC: David Sterba <dste...@suse.com>
CC: Nikolay Borisov <nbori...@suse.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   69cb6c6556ad89620547318439d6be8bb1629a5a
commit: 253bf57555e451dec5a7f09dc95d380ce8b10e5b btrfs: turn delayed_nodes_tree 
into an XArray
date:   7 weeks ago
:::::: branch date: 5 hours ago
:::::: commit date: 7 weeks ago
compiler: sparc64-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 253bf57555e451dec5a7f09dc95d380ce8b10e5b
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <l...@intel.com>


cppcheck warnings: (new ones prefixed by >>)
   In file included from fs/btrfs/ordered-data.c:
>> fs/btrfs/zoned.c:117:7: warning: Local variable 'i' shadows outer variable 
>> [shadowVariable]
     int i;
         ^
   fs/btrfs/zoned.c:83:6: note: Shadowed declaration
    int i;
        ^
   fs/btrfs/zoned.c:117:7: note: Shadow variable
     int i;
         ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

   In file included from fs/btrfs/ordered-data.c:
>> fs/btrfs/ordered-data.c:314:7: warning: Local variable 'entry_end' shadows 
>> outer function [shadowFunction]
     u64 entry_end;
         ^
   fs/btrfs/ordered-data.c:23:12: note: Shadowed declaration
   static u64 entry_end(struct btrfs_ordered_extent *entry)
              ^
   fs/btrfs/ordered-data.c:314:7: note: Shadow variable
     u64 entry_end;
         ^
>> fs/btrfs/ordered-data.c:653:28: warning: Uninitialized variables: 
>> ordered.file_offset, ordered.num_bytes, ordered.ram_bytes, 
>> ordered.disk_bytenr, ordered.disk_num_bytes, ordered.offset, 
>> ordered.bytes_left, ordered.outstanding_isize, ordered.truncated_len, 
>> ordered.flags, ordered.compress_type, ordered.qgroup_rsv, ordered.refs, 
>> ordered.inode, ordered.list, ordered.log_list, ordered.wait, 
>> ordered.rb_node, ordered.root_extent_list, ordered.work, ordered.flush_work, 
>> ordered.physical, ordered.bdev [uninitvar]
     btrfs_put_ordered_extent(ordered);
                              ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:619:30: note: Assuming condition is false
    while (!list_empty(&splice) && nr) {
                                ^
   fs/btrfs/ordered-data.c:653:28: note: Uninitialized variables: 
ordered.file_offset, ordered.num_bytes, ordered.ram_bytes, ordered.disk_bytenr, 
ordered.disk_num_bytes, ordered.offset, ordered.bytes_left, 
ordered.outstanding_isize, ordered.truncated_len, ordered.flags, 
ordered.compress_type, ordered.qgroup_rsv, ordered.refs, ordered.inode, 
ordered.list, ordered.log_list, ordered.wait, ordered.rb_node, 
ordered.root_extent_list, ordered.work, ordered.flush_work, ordered.physical, 
ordered.bdev
     btrfs_put_ordered_extent(ordered);
                              ^
>> fs/btrfs/dev-replace.c:564:60: warning: Parameter 'srcdev' can be declared 
>> with const [constParameter]
   bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev,
                                                              ^
   fs/btrfs/dev-replace.c:829:28: warning: Parameter 'srcdev' can be declared 
with const [constParameter]
         struct btrfs_device *srcdev,
                              ^
>> fs/btrfs/zoned.c:336:16: warning: Uninitialized variable: device->bdev 
>> [uninitvar]
     if (!device->bdev)
                  ^
   fs/btrfs/zoned.c:330:6: note: Assuming condition is false
    if (!btrfs_fs_incompat(fs_info, ZONED))
        ^
   fs/btrfs/zoned.c:336:16: note: Uninitialized variable: device->bdev
     if (!device->bdev)
                  ^
   fs/btrfs/zoned.c:642:16: warning: Uninitialized variable: device->bdev 
[uninitvar]
     if (!device->bdev)
                  ^
   fs/btrfs/zoned.c:1984:16: warning: Uninitialized variable: device->bdev 
[uninitvar]
     if (!device->bdev)
                  ^
   fs/btrfs/zoned.c:1976:6: note: Assuming condition is false
    if (!btrfs_is_zoned(fs_info))
        ^
   fs/btrfs/zoned.c:1984:16: note: Uninitialized variable: device->bdev
     if (!device->bdev)
                  ^
>> fs/btrfs/zoned.c:2069:15: warning: Uninitialized variable: device->zone_info 
>> [uninitvar]
     if (device->zone_info) {
                 ^
   fs/btrfs/zoned.c:2064:6: note: Assuming condition is false
    if (!btrfs_is_zoned(fs_info))
        ^
   fs/btrfs/zoned.c:2069:15: note: Uninitialized variable: device->zone_info
     if (device->zone_info) {
                 ^
   fs/btrfs/zoned.c:2092:16: warning: Uninitialized variable: device->bdev 
[uninitvar]
     if (!device->bdev)
                  ^
   fs/btrfs/zoned.c:2087:36: note: Assuming condition is false
    if (fs_info->bg_reclaim_threshold == 0)
                                      ^
   fs/btrfs/zoned.c:2092:16: note: Uninitialized variable: device->bdev
     if (!device->bdev)
                  ^
   fs/btrfs/delayed-inode.c:1347:31: warning: Parameter 'disk_key' can be 
declared with const [constParameter]
          struct btrfs_disk_key *disk_key, u8 type,
                                 ^
   fs/btrfs/delayed-inode.c:1577:13: warning: Uninitialized variable: curr->key 
[uninitvar]
     if (curr->key.offset > index)
               ^
   fs/btrfs/delayed-inode.c:1613:13: warning: Uninitialized variable: curr->key 
[uninitvar]
     if (curr->key.offset < ctx->pos) {
               ^
   fs/btrfs/delayed-inode.c:1602:16: note: Assuming condition is false
    if (list_empty(ins_list))
                  ^
   fs/btrfs/delayed-inode.c:1613:13: note: Uninitialized variable: curr->key
     if (curr->key.offset < ctx->pos) {
               ^
>> fs/btrfs/delayed-inode.c:1885:24: warning: Uninitialized variables: 
>> delayed_node.inode_id, delayed_node.bytes_reserved, delayed_node.root, 
>> delayed_node.n_list, delayed_node.p_list, delayed_node.ins_root, 
>> delayed_node.del_root, delayed_node.mutex, delayed_node.inode_item, 
>> delayed_node.index_cnt, delayed_node.flags, delayed_node.count [uninitvar]
       delayed_nodes[n] = delayed_node;
                          ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1874:15: note: Assuming condition is false
     if (xa_empty(&root->delayed_nodes)) {
                 ^
   fs/btrfs/delayed-inode.c:1885:24: note: Uninitialized variables: 
delayed_node.inode_id, delayed_node.bytes_reserved, delayed_node.root, 
delayed_node.n_list, delayed_node.p_list, delayed_node.ins_root, 
delayed_node.del_root, delayed_node.mutex, delayed_node.inode_item, 
delayed_node.index_cnt, delayed_node.flags, delayed_node.count
       delayed_nodes[n] = delayed_node;
                          ^
   fs/btrfs/tree-log.h:52:28: warning: Uninitialized variables: 
ordered.file_offset, ordered.num_bytes, ordered.ram_bytes, ordered.disk_bytenr, 
ordered.disk_num_bytes, ordered.offset, ordered.bytes_left, 
ordered.outstanding_isize, ordered.truncated_len, ordered.flags, 
ordered.compress_type, ordered.qgroup_rsv, ordered.refs, ordered.inode, 
ordered.list, ordered.wait, ordered.rb_node, ordered.root_extent_list, 
ordered.work, ordered.completion, ordered.flush_work, ordered.work_list, 
ordered.physical, ordered.bdev [uninitvar]
     btrfs_put_ordered_extent(ordered);
                              ^
>> fs/btrfs/transaction.c:179:28: warning: Uninitialized variable: 
>> root->commit_root [uninitvar]
     free_extent_buffer(root->commit_root);
                              ^
>> fs/btrfs/transaction.c:229:30: warning: Uninitialized variable: cache 
>> [uninitvar]
     if (btrfs_block_group_done(cache)) {
                                ^
   fs/btrfs/transaction.c:227:48: note: Assignment 
'cache=caching_ctl->block_group', assigned value is <Uninit>
     struct btrfs_block_group *cache = caching_ctl->block_group;
                                                  ^
   fs/btrfs/transaction.c:229:30: note: Uninitialized variable: cache
     if (btrfs_block_group_done(cache)) {
                                ^
>> fs/btrfs/transaction.c:929:11: warning: Uninitialized variable: t->state 
>> [uninitvar]
      if (t->state >= TRANS_STATE_COMMIT_START) {
             ^
>> fs/btrfs/transaction.c:1885:40: warning: Uninitialized variables: 
>> pending.dentry, pending.dir, pending.root, pending.root_item, pending.snap, 
>> pending.inherit, pending.path, pending.block_rsv, pending.error, 
>> pending.anon_dev, pending.readonly [uninitvar]
     ret = create_pending_snapshot(trans, pending);
                                          ^
>> fs/btrfs/scrub.c:1220:13: warning: Parameter 'raid_map' can be declared with 
>> const [constParameter]
          u64 *raid_map,
               ^
   fs/btrfs/tree-log.h:52:28: warning: Uninitialized variables: 
ordered.file_offset, ordered.num_bytes, ordered.ram_bytes, ordered.disk_bytenr, 
ordered.disk_num_bytes, ordered.offset, ordered.bytes_left, 
ordered.outstanding_isize, ordered.truncated_len, ordered.flags, 
ordered.compress_type, ordered.qgroup_rsv, ordered.refs, ordered.inode, 
ordered.list, ordered.wait, ordered.rb_node, ordered.root_extent_list, 
ordered.work, ordered.completion, ordered.flush_work, ordered.work_list, 
ordered.physical, ordered.bdev [uninitvar]
     btrfs_put_ordered_extent(ordered);
                              ^
>> fs/btrfs/ioctl.c:3665:15: warning: Uninitialized variable: device->devid 
>> [uninitvar]
     if (device->devid > fi_args->max_id)
                 ^
   fs/btrfs/ioctl.c:3655:12: note: Assuming condition is false
    if (IS_ERR(fi_args))
              ^
   fs/btrfs/ioctl.c:3665:15: note: Uninitialized variable: device->devid
     if (device->devid > fi_args->max_id)
                 ^
>> fs/btrfs/ioctl.c:3831:38: warning: Uninitialized variable: 
>> block_group->length [uninitvar]
     space->total_bytes += block_group->length;
                                        ^
>> fs/btrfs/ioctl.c:3867:13: warning: Uninitialized variable: tmp->flags 
>> [uninitvar]
      if (tmp->flags == types[i]) {
               ^
   fs/btrfs/ioctl.c:3920:13: warning: Uninitialized variable: tmp->flags 
[uninitvar]
      if (tmp->flags == types[i]) {
               ^
   fs/btrfs/ioctl.c:3915:7: note: Assuming condition is false
     if (!slot_count)
         ^
   fs/btrfs/ioctl.c:3920:13: note: Uninitialized variable: tmp->flags
      if (tmp->flags == types[i]) {
               ^
>> fs/btrfs/send.c:6752:13: warning: Either the condition '*level==0' is 
>> redundant or the array 'path->nodes[8]' is accessed at index -1, which is 
>> out of bounds. [negativeIndex]
    path->nodes[*level - 1] = eb;
               ^
   fs/btrfs/send.c:6756:13: note: Assuming that condition '*level==0' is not 
redundant
    if (*level == 0)
               ^
   fs/btrfs/send.c:6752:13: note: Negative array index
    path->nodes[*level - 1] = eb;
               ^
>> fs/btrfs/send.c:6753:13: warning: Either the condition '*level==0' is 
>> redundant or the array 'path->slots[8]' is accessed at index -1, which is 
>> out of bounds. [negativeIndex]
    path->slots[*level - 1] = 0;
               ^
   fs/btrfs/send.c:6756:13: note: Assuming that condition '*level==0' is not 
redundant
    if (*level == 0)
               ^
   fs/btrfs/send.c:6753:13: note: Negative array index
    path->slots[*level - 1] = 0;
               ^
>> fs/btrfs/send.c:2094:12: warning: Uninitialized variable: cur->ino 
>> [uninitvar]
     if (cur->ino == ino && cur->gen == gen)
              ^
   fs/btrfs/send.c:2090:6: note: Assuming condition is false
    if (!nce_head)
        ^
   fs/btrfs/send.c:2094:12: note: Uninitialized variable: cur->ino
     if (cur->ino == ino && cur->gen == gen)
              ^
>> fs/btrfs/send.c:3101:17: warning: Uninitialized variables: cur.list, 
>> cur.name, cur.full_path, cur.dir, cur.dir_gen, cur.name_len [uninitvar]
     ret = dup_ref(cur, &pm->update_refs);
                   ^
   fs/btrfs/send.c:3078:6: note: Assuming condition is false
    if (!pm)
        ^
   fs/btrfs/send.c:3078:6: note: Assuming condition is false
    if (!pm)
        ^
   fs/btrfs/send.c:3078:6: note: Assuming condition is false
    if (!pm)
        ^
   fs/btrfs/send.c:3078:6: note: Assuming condition is false
    if (!pm)
        ^
   fs/btrfs/send.c:3078:6: note: Assuming condition is false
    if (!pm)
        ^
   fs/btrfs/send.c:3078:6: note: Assuming condition is false
    if (!pm)
        ^
   fs/btrfs/send.c:3101:17: note: Uninitialized variables: cur.list, cur.name, 
cur.full_path, cur.dir, cur.dir_gen, cur.name_len
     ret = dup_ref(cur, &pm->update_refs);
                   ^

vim +1885 fs/btrfs/delayed-inode.c

16cdcec736cd21 Miao Xie        2011-04-22  1863  
16cdcec736cd21 Miao Xie        2011-04-22  1864  void 
btrfs_kill_all_delayed_nodes(struct btrfs_root *root)
16cdcec736cd21 Miao Xie        2011-04-22  1865  {
253bf57555e451 Gabriel Niebler 2022-04-26  1866         unsigned long index = 0;
253bf57555e451 Gabriel Niebler 2022-04-26  1867         struct 
btrfs_delayed_node *delayed_node;
16cdcec736cd21 Miao Xie        2011-04-22  1868         struct 
btrfs_delayed_node *delayed_nodes[8];
16cdcec736cd21 Miao Xie        2011-04-22  1869  
16cdcec736cd21 Miao Xie        2011-04-22  1870         while (1) {
253bf57555e451 Gabriel Niebler 2022-04-26  1871                 int n = 0;
253bf57555e451 Gabriel Niebler 2022-04-26  1872  
16cdcec736cd21 Miao Xie        2011-04-22  1873                 
spin_lock(&root->inode_lock);
253bf57555e451 Gabriel Niebler 2022-04-26  1874                 if 
(xa_empty(&root->delayed_nodes)) {
16cdcec736cd21 Miao Xie        2011-04-22  1875                         
spin_unlock(&root->inode_lock);
253bf57555e451 Gabriel Niebler 2022-04-26  1876                         return;
16cdcec736cd21 Miao Xie        2011-04-22  1877                 }
16cdcec736cd21 Miao Xie        2011-04-22  1878  
253bf57555e451 Gabriel Niebler 2022-04-26  1879                 
xa_for_each_start(&root->delayed_nodes, index, delayed_node, index) {
baf320b9d531f1 Josef Bacik     2019-09-26  1880                         /*
baf320b9d531f1 Josef Bacik     2019-09-26  1881                          * 
Don't increase refs in case the node is dead and
baf320b9d531f1 Josef Bacik     2019-09-26  1882                          * 
about to be removed from the tree in the loop below
baf320b9d531f1 Josef Bacik     2019-09-26  1883                          */
253bf57555e451 Gabriel Niebler 2022-04-26  1884                         if 
(refcount_inc_not_zero(&delayed_node->refs)) {
253bf57555e451 Gabriel Niebler 2022-04-26 @1885                                 
delayed_nodes[n] = delayed_node;
253bf57555e451 Gabriel Niebler 2022-04-26  1886                                 
n++;
253bf57555e451 Gabriel Niebler 2022-04-26  1887                         }
253bf57555e451 Gabriel Niebler 2022-04-26  1888                         if (n 
>= ARRAY_SIZE(delayed_nodes))
253bf57555e451 Gabriel Niebler 2022-04-26  1889                                 
break;
baf320b9d531f1 Josef Bacik     2019-09-26  1890                 }
253bf57555e451 Gabriel Niebler 2022-04-26  1891                 index++;
16cdcec736cd21 Miao Xie        2011-04-22  1892                 
spin_unlock(&root->inode_lock);
16cdcec736cd21 Miao Xie        2011-04-22  1893  
253bf57555e451 Gabriel Niebler 2022-04-26  1894                 for (int i = 0; 
i < n; i++) {
16cdcec736cd21 Miao Xie        2011-04-22  1895                         
__btrfs_kill_delayed_node(delayed_nodes[i]);
16cdcec736cd21 Miao Xie        2011-04-22  1896                         
btrfs_release_delayed_node(delayed_nodes[i]);
16cdcec736cd21 Miao Xie        2011-04-22  1897                 }
16cdcec736cd21 Miao Xie        2011-04-22  1898         }
16cdcec736cd21 Miao Xie        2011-04-22  1899  }
67cde3448d951b Miao Xie        2012-06-14  1900  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to