From: Kent Overstreet Date: Mon, 14 Jun 2021 20:32:44 +0000 (-0400) Subject: bcachefs: Make sure bch2_trans_mark_update uses correct iter flags X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8ee529e9c16b9c72293794f441270e954a9c6508;p=linux.git 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 --- diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c index da24c4038fc98..c427744a665f2 100644 --- a/fs/bcachefs/buckets.c +++ b/fs/bcachefs/buckets.c @@ -1916,7 +1916,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; @@ -1924,7 +1924,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;