diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-03-21 21:16:52 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:57 -0400 |
commit | bcad562259f7030a1f2e5e0a4e4f6f5b53371c74 (patch) | |
tree | ccd8ab0c1b359a14da3b3fc3d3766a27752131f1 /fs/bcachefs/btree_iter.h | |
parent | 818664f50571fd04683743600e50731e70fff8f5 (diff) | |
download | lwn-bcad562259f7030a1f2e5e0a4e4f6f5b53371c74.tar.gz lwn-bcad562259f7030a1f2e5e0a4e4f6f5b53371c74.zip |
bcachefs: Update iter->real_pos lazily
peek() has to update iter->real_pos - there's no need for
bch2_btree_iter_set_pos() to update it as well.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/btree_iter.h')
-rw-r--r-- | fs/bcachefs/btree_iter.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/bcachefs/btree_iter.h b/fs/bcachefs/btree_iter.h index 1276d8aaf652..3ae19e2900a6 100644 --- a/fs/bcachefs/btree_iter.h +++ b/fs/bcachefs/btree_iter.h @@ -177,7 +177,12 @@ struct bkey_s_c bch2_btree_iter_peek_cached(struct btree_iter *); bool bch2_btree_iter_advance(struct btree_iter *); bool bch2_btree_iter_rewind(struct btree_iter *); -void bch2_btree_iter_set_pos(struct btree_iter *, struct bpos); + +static inline void bch2_btree_iter_set_pos(struct btree_iter *iter, struct bpos new_pos) +{ + bkey_init(&iter->k); + iter->k.p = iter->pos = new_pos; +} /* Sort order for locking btree iterators: */ static inline int btree_iter_lock_cmp(const struct btree_iter *l, |