tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   cb8c65ccff7f77d0285f1b126c72d37b2572c865
commit: 6974f0c4555e285ab217cee58b6e874f776ff409 include/linux/string.h: add 
the option of fortified string.h functions
date:   5 days ago
config: x86_64-randconfig-v0-07180702 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
        git checkout 6974f0c4555e285ab217cee58b6e874f776ff409
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   fs/btrfs/ctree.c: In function 'btrfs_search_forward':
>> fs/btrfs/ctree.c:5149: warning: 'found_key' is used uninitialized in this 
>> function

vim +/found_key +5149 fs/btrfs/ctree.c

7bb86316 Chris Mason   2007-12-11  5120  
3f157a2f Chris Mason   2008-06-25  5121  /*
3f157a2f Chris Mason   2008-06-25  5122   * A helper function to walk down the 
tree starting at min_key, and looking
de78b51a Eric Sandeen  2013-01-31  5123   * for nodes or leaves that are have a 
minimum transaction id.
de78b51a Eric Sandeen  2013-01-31  5124   * This is used by the btree defrag 
code, and tree logging
3f157a2f Chris Mason   2008-06-25  5125   *
3f157a2f Chris Mason   2008-06-25  5126   * This does not cow, but it does 
stuff the starting key it finds back
3f157a2f Chris Mason   2008-06-25  5127   * into min_key, so you can call 
btrfs_search_slot with cow=1 on the
3f157a2f Chris Mason   2008-06-25  5128   * key and get a writable path.
3f157a2f Chris Mason   2008-06-25  5129   *
3f157a2f Chris Mason   2008-06-25  5130   * This does lock as it descends, and 
path->keep_locks should be set
3f157a2f Chris Mason   2008-06-25  5131   * to 1 by the caller.
3f157a2f Chris Mason   2008-06-25  5132   *
3f157a2f Chris Mason   2008-06-25  5133   * This honors path->lowest_level to 
prevent descent past a given level
3f157a2f Chris Mason   2008-06-25  5134   * of the tree.
3f157a2f Chris Mason   2008-06-25  5135   *
d352ac68 Chris Mason   2008-09-29  5136   * min_trans indicates the oldest 
transaction that you are interested
d352ac68 Chris Mason   2008-09-29  5137   * in walking through.  Any nodes or 
leaves older than min_trans are
d352ac68 Chris Mason   2008-09-29  5138   * skipped over (without reading them).
d352ac68 Chris Mason   2008-09-29  5139   *
3f157a2f Chris Mason   2008-06-25  5140   * returns zero if something useful 
was found, < 0 on error and 1 if there
3f157a2f Chris Mason   2008-06-25  5141   * was nothing in the tree that 
matched the search criteria.
3f157a2f Chris Mason   2008-06-25  5142   */
3f157a2f Chris Mason   2008-06-25  5143  int btrfs_search_forward(struct 
btrfs_root *root, struct btrfs_key *min_key,
de78b51a Eric Sandeen  2013-01-31  5144                          struct 
btrfs_path *path,
3f157a2f Chris Mason   2008-06-25  5145                          u64 min_trans)
3f157a2f Chris Mason   2008-06-25  5146  {
2ff7e61e Jeff Mahoney  2016-06-22  5147         struct btrfs_fs_info *fs_info = 
root->fs_info;
3f157a2f Chris Mason   2008-06-25  5148         struct extent_buffer *cur;
3f157a2f Chris Mason   2008-06-25 @5149         struct btrfs_key found_key;
3f157a2f Chris Mason   2008-06-25  5150         int slot;
9652480b Yan           2008-07-24  5151         int sret;
3f157a2f Chris Mason   2008-06-25  5152         u32 nritems;
3f157a2f Chris Mason   2008-06-25  5153         int level;
3f157a2f Chris Mason   2008-06-25  5154         int ret = 1;
f98de9b9 Filipe Manana 2014-08-04  5155         int keep_locks = 
path->keep_locks;
3f157a2f Chris Mason   2008-06-25  5156  
f98de9b9 Filipe Manana 2014-08-04  5157         path->keep_locks = 1;
3f157a2f Chris Mason   2008-06-25  5158  again:
bd681513 Chris Mason   2011-07-16  5159         cur = 
btrfs_read_lock_root_node(root);
3f157a2f Chris Mason   2008-06-25  5160         level = btrfs_header_level(cur);
e02119d5 Chris Mason   2008-09-05  5161         WARN_ON(path->nodes[level]);
3f157a2f Chris Mason   2008-06-25  5162         path->nodes[level] = cur;
bd681513 Chris Mason   2011-07-16  5163         path->locks[level] = 
BTRFS_READ_LOCK;
3f157a2f Chris Mason   2008-06-25  5164  
3f157a2f Chris Mason   2008-06-25  5165         if 
(btrfs_header_generation(cur) < min_trans) {
3f157a2f Chris Mason   2008-06-25  5166                 ret = 1;
3f157a2f Chris Mason   2008-06-25  5167                 goto out;
3f157a2f Chris Mason   2008-06-25  5168         }
3f157a2f Chris Mason   2008-06-25  5169         while (1) {
3f157a2f Chris Mason   2008-06-25  5170                 nritems = 
btrfs_header_nritems(cur);
3f157a2f Chris Mason   2008-06-25  5171                 level = 
btrfs_header_level(cur);
9652480b Yan           2008-07-24  5172                 sret = bin_search(cur, 
min_key, level, &slot);
3f157a2f Chris Mason   2008-06-25  5173  
323ac95b Chris Mason   2008-10-01  5174                 /* at the lowest level, 
we're done, setup the path and exit */
323ac95b Chris Mason   2008-10-01  5175                 if (level == 
path->lowest_level) {
e02119d5 Chris Mason   2008-09-05  5176                         if (slot >= 
nritems)
e02119d5 Chris Mason   2008-09-05  5177                                 goto 
find_next_key;
3f157a2f Chris Mason   2008-06-25  5178                         ret = 0;
3f157a2f Chris Mason   2008-06-25  5179                         
path->slots[level] = slot;
3f157a2f Chris Mason   2008-06-25  5180                         
btrfs_item_key_to_cpu(cur, &found_key, slot);
3f157a2f Chris Mason   2008-06-25  5181                         goto out;
3f157a2f Chris Mason   2008-06-25  5182                 }
9652480b Yan           2008-07-24  5183                 if (sret && slot > 0)
9652480b Yan           2008-07-24  5184                         slot--;
3f157a2f Chris Mason   2008-06-25  5185                 /*
de78b51a Eric Sandeen  2013-01-31  5186                  * check this node 
pointer against the min_trans parameters.
de78b51a Eric Sandeen  2013-01-31  5187                  * If it is too old, 
old, skip to the next one.
3f157a2f Chris Mason   2008-06-25  5188                  */
3f157a2f Chris Mason   2008-06-25  5189                 while (slot < nritems) {
3f157a2f Chris Mason   2008-06-25  5190                         u64 gen;
e02119d5 Chris Mason   2008-09-05  5191  
3f157a2f Chris Mason   2008-06-25  5192                         gen = 
btrfs_node_ptr_generation(cur, slot);
3f157a2f Chris Mason   2008-06-25  5193                         if (gen < 
min_trans) {
3f157a2f Chris Mason   2008-06-25  5194                                 slot++;
3f157a2f Chris Mason   2008-06-25  5195                                 
continue;
3f157a2f Chris Mason   2008-06-25  5196                         }
3f157a2f Chris Mason   2008-06-25  5197                         break;
3f157a2f Chris Mason   2008-06-25  5198                 }
e02119d5 Chris Mason   2008-09-05  5199  find_next_key:
3f157a2f Chris Mason   2008-06-25  5200                 /*
3f157a2f Chris Mason   2008-06-25  5201                  * we didn't find a 
candidate key in this node, walk forward
3f157a2f Chris Mason   2008-06-25  5202                  * and find another one
3f157a2f Chris Mason   2008-06-25  5203                  */
3f157a2f Chris Mason   2008-06-25  5204                 if (slot >= nritems) {
e02119d5 Chris Mason   2008-09-05  5205                         
path->slots[level] = slot;
b4ce94de Chris Mason   2009-02-04  5206                         
btrfs_set_path_blocking(path);
e02119d5 Chris Mason   2008-09-05  5207                         sret = 
btrfs_find_next_key(root, path, min_key, level,
de78b51a Eric Sandeen  2013-01-31  5208                                         
          min_trans);
e02119d5 Chris Mason   2008-09-05  5209                         if (sret == 0) {
b3b4aa74 David Sterba  2011-04-21  5210                                 
btrfs_release_path(path);
3f157a2f Chris Mason   2008-06-25  5211                                 goto 
again;
3f157a2f Chris Mason   2008-06-25  5212                         } else {
3f157a2f Chris Mason   2008-06-25  5213                                 goto 
out;
3f157a2f Chris Mason   2008-06-25  5214                         }
3f157a2f Chris Mason   2008-06-25  5215                 }
3f157a2f Chris Mason   2008-06-25  5216                 /* save our key for 
returning back */
3f157a2f Chris Mason   2008-06-25  5217                 
btrfs_node_key_to_cpu(cur, &found_key, slot);
3f157a2f Chris Mason   2008-06-25  5218                 path->slots[level] = 
slot;
3f157a2f Chris Mason   2008-06-25  5219                 if (level == 
path->lowest_level) {
3f157a2f Chris Mason   2008-06-25  5220                         ret = 0;
3f157a2f Chris Mason   2008-06-25  5221                         goto out;
3f157a2f Chris Mason   2008-06-25  5222                 }
b4ce94de Chris Mason   2009-02-04  5223                 
btrfs_set_path_blocking(path);
2ff7e61e Jeff Mahoney  2016-06-22  5224                 cur = 
read_node_slot(fs_info, cur, slot);
fb770ae4 Liu Bo        2016-07-05  5225                 if (IS_ERR(cur)) {
fb770ae4 Liu Bo        2016-07-05  5226                         ret = 
PTR_ERR(cur);
fb770ae4 Liu Bo        2016-07-05  5227                         goto out;
fb770ae4 Liu Bo        2016-07-05  5228                 }
3f157a2f Chris Mason   2008-06-25  5229  
bd681513 Chris Mason   2011-07-16  5230                 
btrfs_tree_read_lock(cur);
b4ce94de Chris Mason   2009-02-04  5231  
bd681513 Chris Mason   2011-07-16  5232                 path->locks[level - 1] 
= BTRFS_READ_LOCK;
3f157a2f Chris Mason   2008-06-25  5233                 path->nodes[level - 1] 
= cur;
f7c79f30 Chris Mason   2012-03-19  5234                 unlock_up(path, level, 
1, 0, NULL);
bd681513 Chris Mason   2011-07-16  5235                 
btrfs_clear_path_blocking(path, NULL, 0);
3f157a2f Chris Mason   2008-06-25  5236         }
3f157a2f Chris Mason   2008-06-25  5237  out:
f98de9b9 Filipe Manana 2014-08-04  5238         path->keep_locks = keep_locks;
f98de9b9 Filipe Manana 2014-08-04  5239         if (ret == 0) {
f98de9b9 Filipe Manana 2014-08-04  5240                 
btrfs_unlock_up_safe(path, path->lowest_level + 1);
b4ce94de Chris Mason   2009-02-04  5241                 
btrfs_set_path_blocking(path);
f98de9b9 Filipe Manana 2014-08-04  5242                 memcpy(min_key, 
&found_key, sizeof(found_key));
f98de9b9 Filipe Manana 2014-08-04  5243         }
3f157a2f Chris Mason   2008-06-25  5244         return ret;
3f157a2f Chris Mason   2008-06-25  5245  }
3f157a2f Chris Mason   2008-06-25  5246  

:::::: The code at line 5149 was first introduced by commit
:::::: 3f157a2fd2ad731e1ed9964fecdc5f459f04a4a4 Btrfs: Online btree 
defragmentation fixes

:::::: TO: Chris Mason <[email protected]>
:::::: CC: Chris Mason <[email protected]>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to