diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2020-11-02 18:54:33 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2020-11-05 12:45:15 -0500 |
commit | 79d3ca41349844919de3fde5c2ace7a77ba43dc8 (patch) | |
tree | 95763b6b17a7e27374e6de35aa0416062919258c | |
parent | ae49b96828aaec202340118b0c1f68b6e8344481 (diff) |
bcachefs: Don't embed btree iters in btree_trans
These haven't been in used since reallocing iterators has been disabled,
and saves us a lot of stack if we get rid of it.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/btree_iter.c | 13 | ||||
-rw-r--r-- | fs/bcachefs/btree_types.h | 4 |
2 files changed, 3 insertions, 14 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index 9ada864536a6..9e1971e6f484 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -2039,8 +2039,7 @@ success: sizeof(struct btree_iter) * trans->nr_iters + sizeof(struct btree_insert_entry) * trans->nr_iters); - if (trans->iters != trans->iters_onstack) - kfree(trans->iters); + kfree(trans->iters); trans->iters = new_iters; trans->updates = new_updates; @@ -2330,21 +2329,15 @@ void bch2_trans_init(struct btree_trans *trans, struct bch_fs *c, unsigned expected_nr_iters, size_t expected_mem_bytes) { - memset(trans, 0, offsetof(struct btree_trans, iters_onstack)); - /* * reallocating iterators currently completely breaks * bch2_trans_iter_put(): */ expected_nr_iters = BTREE_ITER_MAX; + memset(trans, 0, sizeof(*trans)); trans->c = c; trans->ip = _RET_IP_; - trans->size = ARRAY_SIZE(trans->iters_onstack); - trans->iters = trans->iters_onstack; - trans->updates = trans->updates_onstack; - trans->updates2 = trans->updates2_onstack; - trans->fs_usage_deltas = NULL; if (expected_nr_iters > trans->size) bch2_trans_realloc_iters(trans, expected_nr_iters); @@ -2376,7 +2369,7 @@ int bch2_trans_exit(struct btree_trans *trans) kfree(trans->mem); if (trans->used_mempool) mempool_free(trans->iters, &trans->c->btree_iters_pool); - else if (trans->iters != trans->iters_onstack) + else kfree(trans->iters); trans->mem = (void *) 0x1; trans->iters = (void *) 0x1; diff --git a/fs/bcachefs/btree_types.h b/fs/bcachefs/btree_types.h index 7ba016d4ad30..93721fbc7794 100644 --- a/fs/bcachefs/btree_types.h +++ b/fs/bcachefs/btree_types.h @@ -381,10 +381,6 @@ struct btree_trans { unsigned journal_u64s; unsigned journal_preres_u64s; struct replicas_delta_list *fs_usage_deltas; - - struct btree_iter iters_onstack[2]; - struct btree_insert_entry updates_onstack[2]; - struct btree_insert_entry updates2_onstack[2]; }; #define BTREE_FLAG(flag) \ |