On 02/24, Dan Carpenter wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git > dev-test > head: 0c3712423755e851debb4021af26802b75d1cb9d > commit: 0c3712423755e851debb4021af26802b75d1cb9d [5/5] f2fs: avoid reading > already updated pages during GC > config: csky-randconfig-r071-20260224 > (https://download.01.org/0day-ci/archive/20260224/[email protected]/config) > compiler: csky-linux-gcc (GCC) 15.2.0 > smatch version: v0.5.0-8994-gd50c5a4c > > If you fix the issue in a separate patch/commit (i.e. not just a new version > of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <[email protected]> > | Reported-by: Dan Carpenter <[email protected]> > | Closes: https://lore.kernel.org/r/[email protected]/ > > smatch warnings: > fs/f2fs/gc.c:1286 ra_data_block() warn: missing error code 'err' > > vim +/err +1286 fs/f2fs/gc.c > > 6aa58d8ad20a332 Chao Yu 2018-08-14 1217 static int > ra_data_block(struct inode *inode, pgoff_t index) > 6aa58d8ad20a332 Chao Yu 2018-08-14 1218 { > 6aa58d8ad20a332 Chao Yu 2018-08-14 1219 struct > f2fs_sb_info *sbi = F2FS_I_SB(inode); > f18d00769336897 Sunmin Jeong 2024-07-10 1220 struct > address_space *mapping = f2fs_is_cow_file(inode) ? > f18d00769336897 Sunmin Jeong 2024-07-10 1221 > F2FS_I(inode)->atomic_inode->i_mapping : inode->i_mapping; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1222 struct > dnode_of_data dn; > e0b89d00ea9f846 Chao Yu 2025-10-14 1223 struct folio > *folio, *efolio; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1224 struct > f2fs_io_info fio = { > 6aa58d8ad20a332 Chao Yu 2018-08-14 1225 .sbi = > sbi, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1226 .ino = > inode->i_ino, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1227 .type = > DATA, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1228 .temp = > COLD, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1229 .op = > REQ_OP_READ, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1230 > .op_flags = 0, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1231 > .encrypted_page = NULL, > 2eae077e6e46f90 Chao Yu 2023-02-02 1232 > .in_list = 0, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1233 }; > 0c3712423755e85 Jianan Huang 2026-02-09 1234 int err = 0; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1235 > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1236) folio = > f2fs_grab_cache_folio(mapping, index, true); > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1237) if > (IS_ERR(folio)) > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1238) return > PTR_ERR(folio); > 6aa58d8ad20a332 Chao Yu 2018-08-14 1239 > 04a91ab01684744 Christoph Hellwig 2022-11-28 1240 if > (f2fs_lookup_read_extent_cache_block(inode, index, > 04a91ab01684744 Christoph Hellwig 2022-11-28 1241 > &dn.data_blkaddr)) { > 93770ab7a6e9631 Chao Yu 2019-04-15 1242 if > (unlikely(!f2fs_is_valid_blkaddr(sbi, dn.data_blkaddr, > 93770ab7a6e9631 Chao Yu 2019-04-15 1243 > DATA_GENERIC_ENHANCE_READ))) { > 10f966bbf521bb9 Chao Yu 2019-06-20 1244 > err = -EFSCORRUPTED; > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1245) > goto put_folio; > 93770ab7a6e9631 Chao Yu 2019-04-15 1246 } > 6aa58d8ad20a332 Chao Yu 2018-08-14 1247 goto > got_it; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1248 } > 6aa58d8ad20a332 Chao Yu 2018-08-14 1249 > 6aa58d8ad20a332 Chao Yu 2018-08-14 1250 > set_new_dnode(&dn, inode, NULL, NULL, 0); > 6aa58d8ad20a332 Chao Yu 2018-08-14 1251 err = > f2fs_get_dnode_of_data(&dn, index, LOOKUP_NODE); > 6aa58d8ad20a332 Chao Yu 2018-08-14 1252 if (err) > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1253) goto > put_folio; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1254 > f2fs_put_dnode(&dn); > 6aa58d8ad20a332 Chao Yu 2018-08-14 1255 > 93770ab7a6e9631 Chao Yu 2019-04-15 1256 if > (!__is_valid_data_blkaddr(dn.data_blkaddr)) { > 93770ab7a6e9631 Chao Yu 2019-04-15 1257 err = > -ENOENT; > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1258) goto > put_folio; > 93770ab7a6e9631 Chao Yu 2019-04-15 1259 } > 6aa58d8ad20a332 Chao Yu 2018-08-14 1260 if > (unlikely(!f2fs_is_valid_blkaddr(sbi, dn.data_blkaddr, > 93770ab7a6e9631 Chao Yu 2019-04-15 1261 > DATA_GENERIC_ENHANCE))) { > 10f966bbf521bb9 Chao Yu 2019-06-20 1262 err = > -EFSCORRUPTED; > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1263) goto > put_folio; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1264 } > 6aa58d8ad20a332 Chao Yu 2018-08-14 1265 got_it: > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1266) /* read folio */ > d342b7adad71e5a Matthew Wilcox (Oracle 2025-07-08 1267) fio.folio = > folio; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1268 fio.new_blkaddr > = fio.old_blkaddr = dn.data_blkaddr; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1269 > 9bf1a3f73927492 Yunlong Song 2018-09-18 1270 /* > 9bf1a3f73927492 Yunlong Song 2018-09-18 1271 * don't cache > encrypted data into meta inode until previous dirty > 9bf1a3f73927492 Yunlong Song 2018-09-18 1272 * data were > writebacked to avoid racing between GC and flush. > 9bf1a3f73927492 Yunlong Song 2018-09-18 1273 */ > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1274) > f2fs_folio_wait_writeback(folio, DATA, true, true); > 9bf1a3f73927492 Yunlong Song 2018-09-18 1275 > 9bf1a3f73927492 Yunlong Song 2018-09-18 1276 > f2fs_wait_on_block_writeback(inode, dn.data_blkaddr); > 9bf1a3f73927492 Yunlong Song 2018-09-18 1277 > e0b89d00ea9f846 Chao Yu 2025-10-14 1278 efolio = > f2fs_filemap_get_folio(META_MAPPING(sbi), dn.data_blkaddr, > 6aa58d8ad20a332 Chao Yu 2018-08-14 1279 > FGP_LOCK | FGP_CREAT, GFP_NOFS); > e0b89d00ea9f846 Chao Yu 2025-10-14 1280 if > (IS_ERR(efolio)) { > e0b89d00ea9f846 Chao Yu 2025-10-14 1281 err = > PTR_ERR(efolio); > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1282) goto > put_folio; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1283 } > 6aa58d8ad20a332 Chao Yu 2018-08-14 1284 > 0c3712423755e85 Jianan Huang 2026-02-09 1285 if > (folio_test_uptodate(efolio)) > 0c3712423755e85 Jianan Huang 2026-02-09 @1286 goto > put_encrypted_page; > > Is this an error path? It looks like it is...
https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/commit/?h=dev-test It's not an error case, but skips to submit bio. > > 0c3712423755e85 Jianan Huang 2026-02-09 1287 > e0b89d00ea9f846 Chao Yu 2025-10-14 1288 > fio.encrypted_page = &efolio->page; > e0b89d00ea9f846 Chao Yu 2025-10-14 1289 > 6aa58d8ad20a332 Chao Yu 2018-08-14 1290 err = > f2fs_submit_page_bio(&fio); > 6aa58d8ad20a332 Chao Yu 2018-08-14 1291 if (err) > 6aa58d8ad20a332 Chao Yu 2018-08-14 1292 goto > put_encrypted_page; > 89c16629e3136f0 Yongpeng Yang 2025-10-27 1293 > f2fs_put_page(fio.encrypted_page, false); > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1294) > f2fs_folio_put(folio, true); > 8b83ac81f4283ae Chao Yu 2020-04-16 1295 > 34a23525601a16f Chao Yu 2022-08-20 1296 > f2fs_update_iostat(sbi, inode, FS_DATA_READ_IO, F2FS_BLKSIZE); > 34a23525601a16f Chao Yu 2022-08-20 1297 > f2fs_update_iostat(sbi, NULL, FS_GDATA_READ_IO, F2FS_BLKSIZE); > 8b83ac81f4283ae Chao Yu 2020-04-16 1298 > 6aa58d8ad20a332 Chao Yu 2018-08-14 1299 return 0; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1300 put_encrypted_page: > 89c16629e3136f0 Yongpeng Yang 2025-10-27 1301 > f2fs_put_page(fio.encrypted_page, true); > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1302) put_folio: > 0d53be232343c16 Matthew Wilcox (Oracle 2025-03-31 1303) > f2fs_folio_put(folio, true); > 6aa58d8ad20a332 Chao Yu 2018-08-14 1304 return err; > 6aa58d8ad20a332 Chao Yu 2018-08-14 1305 } > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki _______________________________________________ Linux-f2fs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
