aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-03-04 22:40:41 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:55 -0400
commita045be5a0edb0f53770e6c6465155d3952e5bbde (patch)
treef7191df41858135445dbc878997661e6805467cb
parent27ace9cc01ea0ebb4a857c8d91e303fd7ab46b19 (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.c11
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;