summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-05-29 11:38:48 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-05-29 12:08:38 -0400
commit7a3837e719b66b6adc8351b07dcab4681089b78a (patch)
tree3093489bf7ab8688e13f617e19c14c0cc2fdff8f
parent10683d0ce835b5dd90c83b4267af06f51e3e99b8 (diff)
bcachefs: bch2_trans_reset_updates()bcachefs-5.17
Factor out a new helper. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/btree_iter.c10
-rw-r--r--fs/bcachefs/btree_update.h13
-rw-r--r--fs/bcachefs/btree_update_leaf.c8
3 files changed, 15 insertions, 16 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c
index b81a55b2fec6..30f17a47a659 100644
--- a/fs/bcachefs/btree_iter.c
+++ b/fs/bcachefs/btree_iter.c
@@ -3197,20 +3197,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(&trans->fs_usage_deltas->memset_start, 0,
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 e34bc9672f80..be504ad3caba 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;