Re: [PATCH v2 07/15] bcachefs: Fix missing c->usage updates from early recovery
Kent Overstreet <[email protected]> Mon, 1 Sep 2025 19:55:34 -0400
| Newsgroups | org.kernel.vger.linux-bcachefs |
|---|---|
| Message-ID | <gg2jtjsovw24shwtwfhclrmqiq6nqy72xvg55ueftyrduesoxv@zjr6vfst6iqf> |
On Thu, Aug 28, 2025 at 05:16:09PM +0300, Nikita Ofitserov via B4 Relay wrote: > From: Nikita Ofitserov <[email protected]> > > Make do_bch2_trans_commit_to_journal_replay apply global FS usage > updates stored in trans->fs_usage_delta, too. > > Signed-off-by: Nikita Ofitserov <[email protected]> kicked this patch out for now - run a lockdep test > --- > fs/bcachefs/btree_trans_commit.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/bcachefs/btree_trans_commit.c b/fs/bcachefs/btree_trans_commit.c > index 5fa7f2f9f1e9d0ddd1d4675774321b519313f477..e3f069ad4002e2b007600fb41cd220d13386d37f 100644 > --- a/fs/bcachefs/btree_trans_commit.c > +++ b/fs/bcachefs/btree_trans_commit.c > @@ -970,6 +970,7 @@ do_bch2_trans_commit_to_journal_replay(struct btree_trans *trans, > > struct bkey_i *accounting; > retry: > + memset(&trans->fs_usage_delta, 0, sizeof(trans->fs_usage_delta)); > percpu_down_read(&c->mark_lock); > for (accounting = btree_trans_subbuf_base(trans, &trans->accounting); > accounting != btree_trans_subbuf_top(trans, &trans->accounting); > @@ -981,6 +982,8 @@ do_bch2_trans_commit_to_journal_replay(struct btree_trans *trans, > if (ret) > goto revert_fs_usage; > } > + /* Only fatal errors are possible later, so no need to revert this */ > + bch2_trans_account_disk_usage_change(trans); > percpu_up_read(&c->mark_lock); > > trans_for_each_update(trans, i) { > > -- > 2.50.1 > >