diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-29 11:38:48 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2022-05-30 18:17:24 -0400 |
commit | 3c79da3ddd874937fe8b5a7c5772d81d7e16e628 (patch) | |
tree | efa9b488b9300a81a620f338c2e8eda527955e44 | |
parent | 1835cf6a1b0b225511a37cccf2bea97265ad7cfc (diff) |
bcachefs: bch2_trans_reset_updates()
Factor out a new helper.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/btree_iter.c | 10 | ||||
-rw-r--r-- | fs/bcachefs/btree_update.h | 13 | ||||
-rw-r--r-- | fs/bcachefs/btree_update_leaf.c | 8 |
3 files changed, 15 insertions, 16 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index b951fbc73f27..05156258c565 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -3198,20 +3198,12 @@ void *bch2_trans_kmalloc(struct btree_trans *trans, size_t size) */ void bch2_trans_begin(struct btree_trans *trans) { - struct btree_insert_entry *i; struct btree_path *path; - trans_for_each_update(trans, i) - __btree_path_put(i->path, true); + bch2_trans_reset_updates(trans); - memset(&trans->journal_res, 0, sizeof(trans->journal_res)); - trans->extra_journal_res = 0; - trans->nr_updates = 0; trans->mem_top = 0; - trans->hooks = NULL; - trans->extra_journal_entries.nr = 0; - if (trans->fs_usage_deltas) { trans->fs_usage_deltas->used = 0; memset((void *) trans->fs_usage_deltas + diff --git a/fs/bcachefs/btree_update.h b/fs/bcachefs/btree_update.h index a40f3460fd62..28f958577006 100644 --- a/fs/bcachefs/btree_update.h +++ b/fs/bcachefs/btree_update.h @@ -140,4 +140,17 @@ static inline int bch2_trans_commit(struct btree_trans *trans, (_i) < (_trans)->updates + (_trans)->nr_updates; \ (_i)++) +static inline void bch2_trans_reset_updates(struct btree_trans *trans) +{ + struct btree_insert_entry *i; + + trans_for_each_update(trans, i) + bch2_path_put(trans, i->path, true); + + trans->extra_journal_res = 0; + trans->nr_updates = 0; + trans->hooks = NULL; + trans->extra_journal_entries.nr = 0; +} + #endif /* _BCACHEFS_BTREE_UPDATE_H */ diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 0b8194432c54..7a26c7938c71 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -1166,13 +1166,7 @@ out: if (likely(!(trans->flags & BTREE_INSERT_NOCHECK_RW))) percpu_ref_put(&c->writes); out_reset: - trans_for_each_update(trans, i) - bch2_path_put(trans, i->path, true); - - trans->extra_journal_res = 0; - trans->nr_updates = 0; - trans->hooks = NULL; - trans->extra_journal_entries.nr = 0; + bch2_trans_reset_updates(trans); if (trans->fs_usage_deltas) { trans->fs_usage_deltas->used = 0; |