From: Kent Overstreet Date: Tue, 15 Oct 2024 06:13:22 +0000 (-0400) Subject: bcachefs: fix restart handling in bch2_do_invalidates_work() X-Git-Tag: v6.12-rc5~28^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ee4be9c621e4cd6a87d134a46d7c56debdf6664;p=thirdparty%2Fkernel%2Flinux.git bcachefs: fix restart handling in bch2_do_invalidates_work() this one is fairly harmless since the invalidate worker will just run again later if it needs to, but still worth fixing Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/alloc_background.c b/fs/bcachefs/alloc_background.c index 6e161f8ffe8d7..50f1919f4cbf6 100644 --- a/fs/bcachefs/alloc_background.c +++ b/fs/bcachefs/alloc_background.c @@ -2137,14 +2137,15 @@ static void bch2_do_invalidates_work(struct work_struct *work) struct bkey_s_c k = next_lru_key(trans, &iter, ca, &wrapped); ret = bkey_err(k); - if (bch2_err_matches(ret, BCH_ERR_transaction_restart)) - continue; if (ret) - break; + goto restart_err; if (!k.k) break; ret = invalidate_one_bucket(trans, &iter, k, &nr_to_invalidate); +restart_err: + if (bch2_err_matches(ret, BCH_ERR_transaction_restart)) + continue; if (ret) break;