Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bcachefs: fsck -> bch2_trans_run()

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

+34 -43
+34 -43
fs/bcachefs/fsck.c
··· 973 973 int bch2_check_inodes(struct bch_fs *c) 974 974 { 975 975 bool full = c->opts.fsck; 976 - struct btree_trans *trans = bch2_trans_get(c); 977 976 struct bch_inode_unpacked prev = { 0 }; 978 977 struct snapshots_seen s; 979 - int ret; 980 978 981 979 snapshots_seen_init(&s); 982 980 983 - ret = for_each_btree_key_commit(trans, iter, BTREE_ID_inodes, 984 - POS_MIN, 985 - BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, k, 986 - NULL, NULL, BCH_TRANS_COMMIT_no_enospc, 987 - check_inode(trans, &iter, k, &prev, &s, full)); 981 + int ret = bch2_trans_run(c, 982 + for_each_btree_key_commit(trans, iter, BTREE_ID_inodes, 983 + POS_MIN, 984 + BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, k, 985 + NULL, NULL, BCH_TRANS_COMMIT_no_enospc, 986 + check_inode(trans, &iter, k, &prev, &s, full))); 988 987 989 988 snapshots_seen_exit(&s); 990 - bch2_trans_put(trans); 991 989 bch_err_fn(c, ret); 992 990 return ret; 993 991 } ··· 1415 1417 { 1416 1418 struct inode_walker w = inode_walker_init(); 1417 1419 struct snapshots_seen s; 1418 - struct btree_trans *trans = bch2_trans_get(c); 1419 1420 struct extent_ends extent_ends; 1420 1421 struct disk_reservation res = { 0 }; 1421 - int ret = 0; 1422 1422 1423 1423 snapshots_seen_init(&s); 1424 1424 extent_ends_init(&extent_ends); 1425 1425 1426 - ret = for_each_btree_key_commit(trans, iter, BTREE_ID_extents, 1427 - POS(BCACHEFS_ROOT_INO, 0), 1428 - BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, k, 1429 - &res, NULL, 1430 - BCH_TRANS_COMMIT_no_enospc, ({ 1431 - bch2_disk_reservation_put(c, &res); 1432 - check_extent(trans, &iter, k, &w, &s, &extent_ends) ?: 1433 - check_extent_overbig(trans, &iter, k); 1434 - })) ?: 1435 - check_i_sectors(trans, &w); 1426 + int ret = bch2_trans_run(c, 1427 + for_each_btree_key_commit(trans, iter, BTREE_ID_extents, 1428 + POS(BCACHEFS_ROOT_INO, 0), 1429 + BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, k, 1430 + &res, NULL, 1431 + BCH_TRANS_COMMIT_no_enospc, ({ 1432 + bch2_disk_reservation_put(c, &res); 1433 + check_extent(trans, &iter, k, &w, &s, &extent_ends) ?: 1434 + check_extent_overbig(trans, &iter, k); 1435 + })) ?: 1436 + check_i_sectors(trans, &w)); 1436 1437 1437 1438 bch2_disk_reservation_put(c, &res); 1438 1439 extent_ends_exit(&extent_ends); 1439 1440 inode_walker_exit(&w); 1440 1441 snapshots_seen_exit(&s); 1441 - bch2_trans_put(trans); 1442 1442 1443 1443 bch_err_fn(c, ret); 1444 1444 return ret; ··· 1444 1448 1445 1449 int bch2_check_indirect_extents(struct bch_fs *c) 1446 1450 { 1447 - struct btree_trans *trans = bch2_trans_get(c); 1448 1451 struct disk_reservation res = { 0 }; 1449 - int ret = 0; 1450 1452 1451 - ret = for_each_btree_key_commit(trans, iter, BTREE_ID_reflink, 1452 - POS_MIN, 1453 - BTREE_ITER_PREFETCH, k, 1454 - &res, NULL, 1455 - BCH_TRANS_COMMIT_no_enospc, ({ 1456 - bch2_disk_reservation_put(c, &res); 1457 - check_extent_overbig(trans, &iter, k); 1458 - })); 1453 + int ret = bch2_trans_run(c, 1454 + for_each_btree_key_commit(trans, iter, BTREE_ID_reflink, 1455 + POS_MIN, 1456 + BTREE_ITER_PREFETCH, k, 1457 + &res, NULL, 1458 + BCH_TRANS_COMMIT_no_enospc, ({ 1459 + bch2_disk_reservation_put(c, &res); 1460 + check_extent_overbig(trans, &iter, k); 1461 + }))); 1459 1462 1460 1463 bch2_disk_reservation_put(c, &res); 1461 - bch2_trans_put(trans); 1462 - 1463 1464 bch_err_fn(c, ret); 1464 1465 return ret; 1465 1466 } ··· 1809 1816 struct inode_walker target = inode_walker_init(); 1810 1817 struct snapshots_seen s; 1811 1818 struct bch_hash_info hash_info; 1812 - struct btree_trans *trans = bch2_trans_get(c); 1813 - int ret = 0; 1814 1819 1815 1820 snapshots_seen_init(&s); 1816 1821 1817 - ret = for_each_btree_key_commit(trans, iter, BTREE_ID_dirents, 1818 - POS(BCACHEFS_ROOT_INO, 0), 1819 - BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, 1820 - k, 1821 - NULL, NULL, 1822 - BCH_TRANS_COMMIT_no_enospc, 1823 - check_dirent(trans, &iter, k, &hash_info, &dir, &target, &s)); 1822 + int ret = bch2_trans_run(c, 1823 + for_each_btree_key_commit(trans, iter, BTREE_ID_dirents, 1824 + POS(BCACHEFS_ROOT_INO, 0), 1825 + BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, 1826 + k, 1827 + NULL, NULL, 1828 + BCH_TRANS_COMMIT_no_enospc, 1829 + check_dirent(trans, &iter, k, &hash_info, &dir, &target, &s))); 1824 1830 1825 - bch2_trans_put(trans); 1826 1831 snapshots_seen_exit(&s); 1827 1832 inode_walker_exit(&dir); 1828 1833 inode_walker_exit(&target);