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]>
---
 fs/bcachefs/btree_trans_commit.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/fs/bcachefs/btree_trans_commit.c b/fs/bcachefs/btree_trans_commit.c
index 
5fa7f2f9f1e9d0ddd1d4675774321b519313f477..2966971ee43eee913676e5e4203733c5c52a2678
 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);
@@ -983,6 +984,9 @@ do_bch2_trans_commit_to_journal_replay(struct btree_trans 
*trans,
        }
        percpu_up_read(&c->mark_lock);
 
+       /* Only fatal errors are possible later, so no need to revert this */
+       bch2_trans_account_disk_usage_change(trans);
+
        trans_for_each_update(trans, i) {
                ret = bch2_journal_key_insert(c, i->btree_id, i->level, i->k);
                if (ret)

-- 
2.50.1



Reply via email to