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