summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-06-14 16:32:44 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2021-06-14 16:32:44 -0400
commit32de9f81b3a866fe6c957ed6b2df31b71f122d5e (patch)
tree5edda5f472c7134c609f7efe3d5d1484d9ef0125
parent3902501ae5ebe65e7f5ce4c601cb53bacb1cb291 (diff)
bcachefs: Make sure bch2_trans_mark_update uses correct iter flags
Now that bch2_btree_iter_peek_with_updates() has been removed in favor of BTREE_ITER_WITH_UPDATES, we need to make sure it's not used where we don't want it. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/buckets.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c
index 84f280b8525c..0b4fb05760bf 100644
--- a/fs/bcachefs/buckets.c
+++ b/fs/bcachefs/buckets.c
@@ -1912,7 +1912,7 @@ int bch2_trans_mark_update(struct btree_trans *trans,
unsigned flags)
{
struct bkey_s_c old;
- int ret;
+ int iter_flags, ret;
if (unlikely(flags & BTREE_TRIGGER_NORUN))
return 0;
@@ -1920,7 +1920,13 @@ int bch2_trans_mark_update(struct btree_trans *trans,
if (!btree_node_type_needs_gc(iter->btree_id))
return 0;
+ iter_flags = iter->flags & BTREE_ITER_WITH_UPDATES;
+ iter->flags &= ~BTREE_ITER_WITH_UPDATES;
+
old = bch2_btree_iter_peek_slot(iter);
+
+ iter->flags |= iter_flags;
+
ret = bkey_err(old);
if (ret)
return ret;