summaryrefslogtreecommitdiff
path: root/libbcachefs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-08-18 18:00:01 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-08-18 18:00:01 -0400
commitd2c2c5954c3304598cb2ecc2e8f11788356f5afc (patch)
treeebf19f126a77121f42bf7f8fb95af0ee145f3af3 /libbcachefs
parentc4ddc63aecf1e4c820532b8e6ab47e98f74d3d7d (diff)
Update bcachefs sources to a7694865a3 bcachefs: fsck: Another transaction restart handling fix
Diffstat (limited to 'libbcachefs')
-rw-r--r--libbcachefs/fsck.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/libbcachefs/fsck.c b/libbcachefs/fsck.c
index ff10f09e..9f768d77 100644
--- a/libbcachefs/fsck.c
+++ b/libbcachefs/fsck.c
@@ -728,7 +728,7 @@ static int __get_visible_inodes(struct btree_trans *trans,
w->inodes.nr = 0;
- for_each_btree_key(trans, iter, BTREE_ID_inodes, POS(0, inum),
+ for_each_btree_key_norestart(trans, iter, BTREE_ID_inodes, POS(0, inum),
BTREE_ITER_ALL_SNAPSHOTS, k, ret) {
u32 equiv = bch2_snapshot_equiv(c, k.k->p.snapshot);
@@ -1372,13 +1372,11 @@ static int check_subdir_count(struct btree_trans *trans, struct inode_walker *w)
}
}
fsck_err:
- if (ret) {
+ if (ret)
bch_err(c, "error from check_subdir_count(): %s", bch2_err_str(ret));
- return ret;
- }
- if (trans_was_restarted(trans, restart_count))
- return -BCH_ERR_transaction_restart_nested;
- return 0;
+ if (!ret && trans_was_restarted(trans, restart_count))
+ ret = -BCH_ERR_transaction_restart_nested;
+ return ret;
}
static int check_dirent_target(struct btree_trans *trans,