From: Kent Overstreet Date: Sun, 7 Feb 2021 23:52:13 +0000 (-0500) Subject: bcachefs: Simplify btree_iter_(next|prev)_leaf() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=2b2c1a89cef6d19fc5a0995e550a67b1701d8bed;p=linux.git bcachefs: Simplify btree_iter_(next|prev)_leaf() There's no good reason for these functions to not be using bch2_btree_iter_set_pos(). Signed-off-by: Kent Overstreet Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index 196f346f05440..431b1e8bebc76 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -1554,38 +1554,29 @@ void bch2_btree_iter_set_pos(struct btree_iter *iter, struct bpos new_pos) static inline bool btree_iter_set_pos_to_next_leaf(struct btree_iter *iter) { - struct btree_iter_level *l = &iter->l[0]; - bool ret; - - bkey_init(&iter->k); - iter->k.p = iter->pos = l->b->key.k.p; + struct bpos next_pos = iter->l[0].b->key.k.p; + bool ret = bkey_cmp(next_pos, POS_MAX) != 0; - ret = bkey_cmp(iter->pos, POS_MAX) != 0; if (ret && !(iter->flags & BTREE_ITER_IS_EXTENTS)) - iter->k.p = iter->pos = bkey_successor(iter->pos); + next_pos = bkey_successor(next_pos); - btree_iter_pos_changed(iter, 1); + bch2_btree_iter_set_pos(iter, next_pos); return ret; } static inline bool btree_iter_set_pos_to_prev_leaf(struct btree_iter *iter) { - struct btree_iter_level *l = &iter->l[0]; - bool ret; - - bkey_init(&iter->k); - iter->k.p = iter->pos = l->b->data->min_key; - iter->uptodate = BTREE_ITER_NEED_TRAVERSE; + struct bpos next_pos = iter->l[0].b->data->min_key; + bool ret = bkey_cmp(next_pos, POS_MIN) != 0; - ret = bkey_cmp(iter->pos, POS_MIN) != 0; if (ret) { - iter->k.p = iter->pos = bkey_predecessor(iter->pos); + next_pos = bkey_predecessor(next_pos); if (iter->flags & BTREE_ITER_IS_EXTENTS) - iter->k.p = iter->pos = bkey_predecessor(iter->pos); + next_pos = bkey_predecessor(next_pos); } - btree_iter_pos_changed(iter, -1); + bch2_btree_iter_set_pos(iter, next_pos); return ret; }