diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-09-06 17:00:35 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2021-09-06 17:00:35 -0400 |
commit | dae7fab1616148b79a4948aa285202cc22a67024 (patch) | |
tree | 577664fcac95523ab304dae20e1c9df10e01239f | |
parent | cbabda279ca1a6fe52249fb342cbd132318440be (diff) |
bcachefs: Only mark iterators nopreserve that aren't in use
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/btree_iter.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index 761153601e75..06fc10cd3b48 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -2488,6 +2488,8 @@ void bch2_trans_begin(struct btree_trans *trans) } trans_for_each_path(trans, path) { + path->should_be_locked = false; + /* * XXX: we probably shouldn't be doing this if the transaction * was restarted, but currently we still overflow transaction @@ -2495,8 +2497,8 @@ void bch2_trans_begin(struct btree_trans *trans) */ if (!path->ref && !path->preserve) __bch2_path_free(trans, path); - else - path->preserve = path->should_be_locked = false; + else if (!path->ref) + path->preserve = false; } bch2_trans_cond_resched(trans); |