diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-03-04 22:40:41 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:55 -0400 |
commit | a045be5a0edb0f53770e6c6465155d3952e5bbde (patch) | |
tree | f7191df41858135445dbc878997661e6805467cb | |
parent | 27ace9cc01ea0ebb4a857c8d91e303fd7ab46b19 (diff) |
bcachefs: Simplify bch2_btree_iter_peek_prev()
Since we added iter->real_pos, btree_iter_set_pos_to_(next|prev)_leaf no
longer modify iter->pos, so we don't have to save it at the start
anymore.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/btree_iter.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index bf59678b609e..15bda5c92ad1 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -1739,7 +1739,6 @@ struct bkey_s_c bch2_btree_iter_next_with_updates(struct btree_iter *iter) */ struct bkey_s_c bch2_btree_iter_peek_prev(struct btree_iter *iter) { - struct bpos pos = iter->pos; struct btree_iter_level *l = &iter->l[0]; struct bkey_s_c k; int ret; @@ -1764,8 +1763,8 @@ struct bkey_s_c bch2_btree_iter_peek_prev(struct btree_iter *iter) k = __btree_iter_peek(iter, l); if (!k.k || ((iter->flags & BTREE_ITER_IS_EXTENTS) - ? bkey_cmp(bkey_start_pos(k.k), pos) >= 0 - : bkey_cmp(bkey_start_pos(k.k), pos) > 0)) + ? bkey_cmp(bkey_start_pos(k.k), iter->pos) >= 0 + : bkey_cmp(bkey_start_pos(k.k), iter->pos) > 0)) k = __btree_iter_prev(iter, l); if (likely(k.k)) @@ -1777,10 +1776,10 @@ struct bkey_s_c bch2_btree_iter_peek_prev(struct btree_iter *iter) } } - EBUG_ON(bkey_cmp(bkey_start_pos(k.k), pos) > 0); + EBUG_ON(bkey_cmp(bkey_start_pos(k.k), iter->pos) > 0); /* Extents can straddle iter->pos: */ - if (bkey_cmp(k.k->p, pos) < 0) + if (bkey_cmp(k.k->p, iter->pos) < 0) iter->pos = k.k->p; iter->real_pos = k.k->p; iter->uptodate = BTREE_ITER_UPTODATE; @@ -1794,8 +1793,6 @@ no_key: * then we errored going to the previous leaf - make sure it's * consistent with iter->pos: */ - BUG_ON(bkey_cmp(pos, iter->pos) && - bkey_cmp(iter->pos, POS_MIN)); bkey_init(&iter->k); iter->k.p = iter->pos; goto out; |