diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-06-19 14:17:07 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-07-01 00:06:57 -0400 |
commit | c60f9a4b876157afa090e89d087ac492d76a34cd (patch) | |
tree | 892f5485828aaf8d507e93cd98a0091bec0a33d9 | |
parent | bf39e1a12ded59999c355cab6038b1cad1985793 (diff) |
bcachefs: bch2_trans_has_updates()
new helper
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/btree_gc.c | 2 | ||||
-rw-r--r-- | fs/bcachefs/btree_trans_commit.c | 4 | ||||
-rw-r--r-- | fs/bcachefs/btree_update.h | 7 |
3 files changed, 9 insertions, 4 deletions
diff --git a/fs/bcachefs/btree_gc.c b/fs/bcachefs/btree_gc.c index bac108e93823..7269490a5d9a 100644 --- a/fs/bcachefs/btree_gc.c +++ b/fs/bcachefs/btree_gc.c @@ -693,7 +693,7 @@ static int bch2_gc_mark_key(struct btree_trans *trans, enum btree_id btree_id, if (ret) goto out; - if (trans->nr_updates) { + if (bch2_trans_has_updates(trans)) { ret = bch2_trans_commit(trans, NULL, NULL, 0) ?: -BCH_ERR_transaction_restart_nested; goto out; diff --git a/fs/bcachefs/btree_trans_commit.c b/fs/bcachefs/btree_trans_commit.c index 639ef75b3dbd..454b4c5c1808 100644 --- a/fs/bcachefs/btree_trans_commit.c +++ b/fs/bcachefs/btree_trans_commit.c @@ -1015,9 +1015,7 @@ int __bch2_trans_commit(struct btree_trans *trans, unsigned flags) if (unlikely(ret)) goto out_reset; - if (!trans->nr_updates && - !trans->journal_entries.u64s && - !trans->accounting.u64s) + if (!bch2_trans_has_updates(trans)) goto out_reset; ret = bch2_trans_commit_run_triggers(trans); diff --git a/fs/bcachefs/btree_update.h b/fs/bcachefs/btree_update.h index 17a6abd7d9cb..2c6f9b44d888 100644 --- a/fs/bcachefs/btree_update.h +++ b/fs/bcachefs/btree_update.h @@ -271,6 +271,13 @@ static inline int bch2_trans_commit(struct btree_trans *trans, (_i) < (_trans)->updates + (_trans)->nr_updates; \ (_i)++) +static inline bool bch2_trans_has_updates(struct btree_trans *trans) +{ + return trans->nr_updates || + trans->journal_entries.u64s || + trans->accounting.u64s; +} + static inline void bch2_trans_reset_updates(struct btree_trans *trans) { trans_for_each_update(trans, i) |