From d2c2c5954c3304598cb2ecc2e8f11788356f5afc Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 18 Aug 2022 18:00:01 -0400 Subject: [PATCH] Update bcachefs sources to a7694865a3 bcachefs: fsck: Another transaction restart handling fix --- .bcachefs_revision | 2 +- libbcachefs/fsck.c | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.bcachefs_revision b/.bcachefs_revision index a2dcaa4f..23636ff3 100644 --- a/.bcachefs_revision +++ b/.bcachefs_revision @@ -1 +1 @@ -3421116a6c137a36963cfe93c485f48ccd8802b9 +a7694865a3008d6752370caee2ed3c64c1b0f973 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,