tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git f2fs-dev
head:   4f3163b5647b3eb8b1cd56542b46fc5dce090367
commit: 06f9813582ae4fffa8ef05346f0983dc1af4e7d1 [6/11] f2fs: issue small 
discard by LBA order

smatch warnings:
fs/f2fs/segment.c:1246 __issue_discard_cmd_orderly() error: uninitialized 
symbol 'io_interrupted'.

# 
https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git/commit/?id=06f9813582ae4fffa8ef05346f0983dc1af4e7d1
git remote add chao-linux 
https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git
git remote update chao-linux
git checkout 06f9813582ae4fffa8ef05346f0983dc1af4e7d1
vim +/io_interrupted +1246 fs/f2fs/segment.c

004b6862 Chao Yu 2017-04-14  1188  
06f98135 Chao Yu 2018-07-05  1189  static unsigned int 
__issue_discard_cmd_orderly(struct f2fs_sb_info *sbi,
06f98135 Chao Yu 2018-07-05  1190                                       struct 
discard_policy *dpolicy)
06f98135 Chao Yu 2018-07-05  1191  {
06f98135 Chao Yu 2018-07-05  1192       struct discard_cmd_control *dcc = 
SM_I(sbi)->dcc_info;
06f98135 Chao Yu 2018-07-05  1193       struct discard_cmd *prev_dc = NULL, 
*next_dc = NULL;
06f98135 Chao Yu 2018-07-05  1194       struct rb_node **insert_p = NULL, 
*insert_parent = NULL;
06f98135 Chao Yu 2018-07-05  1195       struct discard_cmd *dc;
06f98135 Chao Yu 2018-07-05  1196       struct blk_plug plug;
06f98135 Chao Yu 2018-07-05  1197       unsigned int pos = dcc->next_pos;
06f98135 Chao Yu 2018-07-05  1198       unsigned int issued = 0, iter = 0;
06f98135 Chao Yu 2018-07-05  1199       bool io_interrupted;
06f98135 Chao Yu 2018-07-05  1200  
06f98135 Chao Yu 2018-07-05  1201       mutex_lock(&dcc->cmd_lock);
06f98135 Chao Yu 2018-07-05  1202       dc = (struct discard_cmd 
*)f2fs_lookup_rb_tree_ret(&dcc->root,
06f98135 Chao Yu 2018-07-05  1203                                       NULL, 
pos,
06f98135 Chao Yu 2018-07-05  1204                                       (struct 
rb_entry **)&prev_dc,
06f98135 Chao Yu 2018-07-05  1205                                       (struct 
rb_entry **)&next_dc,
06f98135 Chao Yu 2018-07-05  1206                                       
&insert_p, &insert_parent, true);
06f98135 Chao Yu 2018-07-05  1207       if (!dc)
06f98135 Chao Yu 2018-07-05  1208               dc = next_dc;
06f98135 Chao Yu 2018-07-05  1209  
06f98135 Chao Yu 2018-07-05  1210       blk_start_plug(&plug);
06f98135 Chao Yu 2018-07-05  1211  
06f98135 Chao Yu 2018-07-05  1212       while (dc) {
06f98135 Chao Yu 2018-07-05  1213               struct rb_node *node;
06f98135 Chao Yu 2018-07-05  1214  
06f98135 Chao Yu 2018-07-05  1215               if (dc->state != D_PREP)
06f98135 Chao Yu 2018-07-05  1216                       goto next;
06f98135 Chao Yu 2018-07-05  1217  retry:
06f98135 Chao Yu 2018-07-05  1218               io_interrupted = false;
06f98135 Chao Yu 2018-07-05  1219  
06f98135 Chao Yu 2018-07-05  1220               if (dpolicy->io_aware && 
!is_idle(sbi)) {
06f98135 Chao Yu 2018-07-05  1221                       io_interrupted = true;
06f98135 Chao Yu 2018-07-05  1222                       goto skip;
06f98135 Chao Yu 2018-07-05  1223               }
06f98135 Chao Yu 2018-07-05  1224  
06f98135 Chao Yu 2018-07-05  1225               __submit_discard_cmd(sbi, 
dpolicy, dc);
06f98135 Chao Yu 2018-07-05  1226               issued++;
06f98135 Chao Yu 2018-07-05  1227               dcc->next_pos = dc->lstart + 
dc->len;
06f98135 Chao Yu 2018-07-05  1228  skip:
06f98135 Chao Yu 2018-07-05  1229               if (++iter >= 
dpolicy->max_requests)
06f98135 Chao Yu 2018-07-05  1230                       break;
06f98135 Chao Yu 2018-07-05  1231  
06f98135 Chao Yu 2018-07-05  1232               if (io_interrupted)
06f98135 Chao Yu 2018-07-05  1233                       goto retry;
06f98135 Chao Yu 2018-07-05  1234  next:
06f98135 Chao Yu 2018-07-05  1235               node = rb_next(&dc->rb_node);
06f98135 Chao Yu 2018-07-05  1236               dc = rb_entry_safe(node, struct 
discard_cmd, rb_node);
06f98135 Chao Yu 2018-07-05  1237       }
06f98135 Chao Yu 2018-07-05  1238  
06f98135 Chao Yu 2018-07-05  1239       blk_finish_plug(&plug);
06f98135 Chao Yu 2018-07-05  1240  
06f98135 Chao Yu 2018-07-05  1241       if (!dc)
06f98135 Chao Yu 2018-07-05  1242               dcc->next_pos = 0;
06f98135 Chao Yu 2018-07-05  1243  
06f98135 Chao Yu 2018-07-05  1244       mutex_unlock(&dcc->cmd_lock);
06f98135 Chao Yu 2018-07-05  1245  
06f98135 Chao Yu 2018-07-05 @1246       if (!issued && io_interrupted)
06f98135 Chao Yu 2018-07-05  1247               issued = -1;
06f98135 Chao Yu 2018-07-05  1248  
06f98135 Chao Yu 2018-07-05  1249       return issued;
06f98135 Chao Yu 2018-07-05  1250  }
06f98135 Chao Yu 2018-07-05  1251  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
_______________________________________________
kbuild mailing list
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

Reply via email to