bcachefs: btree_iter_prev_slot()
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 3 Mar 2021 03:45:28 +0000 (22:45 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:55 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.c
fs/bcachefs/btree_iter.h

index 9d3333cd76f9c0b9d20fb83f0fa8099c5c32144d..c05bc8ff8b8d2715521491568ca02d1e58a29664 100644 (file)
@@ -1904,6 +1904,14 @@ struct bkey_s_c bch2_btree_iter_next_slot(struct btree_iter *iter)
        return bch2_btree_iter_peek_slot(iter);
 }
 
+struct bkey_s_c bch2_btree_iter_prev_slot(struct btree_iter *iter)
+{
+       if (!bch2_btree_iter_rewind_pos(iter))
+               return bkey_s_c_null;
+
+       return bch2_btree_iter_peek_slot(iter);
+}
+
 struct bkey_s_c bch2_btree_iter_peek_cached(struct btree_iter *iter)
 {
        struct bkey_cached *ck;
index e2469436f53b5ae31014c7c5b8ef6076b96553d4..3ae6c29c6dad6b529b79a37106653d8530ff693b 100644 (file)
@@ -171,6 +171,7 @@ struct bkey_s_c bch2_btree_iter_prev(struct btree_iter *);
 
 struct bkey_s_c bch2_btree_iter_peek_slot(struct btree_iter *);
 struct bkey_s_c bch2_btree_iter_next_slot(struct btree_iter *);
+struct bkey_s_c bch2_btree_iter_prev_slot(struct btree_iter *);
 
 struct bkey_s_c bch2_btree_iter_peek_cached(struct btree_iter *);