summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_update.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-09-09 19:06:29 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2021-09-09 19:10:07 -0400
commit2b8c1bb0910534e8687ea3e5abf6d8bbba758247 (patch)
tree4e63e051d884896b1fb49d50a9f0c71fb143b7c8 /libbcachefs/btree_update.h
parent6c42566c6204bb5dcd6af3b97257e548b9d2db67 (diff)
Update bcachefs sources to 3f3f969859 bcachefs: Fix some compiler warnings
Diffstat (limited to 'libbcachefs/btree_update.h')
-rw-r--r--libbcachefs/btree_update.h24
1 files changed, 21 insertions, 3 deletions
diff --git a/libbcachefs/btree_update.h b/libbcachefs/btree_update.h
index 217b52e..23b73d3 100644
--- a/libbcachefs/btree_update.h
+++ b/libbcachefs/btree_update.h
@@ -8,10 +8,11 @@
struct bch_fs;
struct btree;
-void bch2_btree_node_lock_for_insert(struct btree_trans *, struct btree_iter *,
+void bch2_btree_node_lock_for_insert(struct btree_trans *, struct btree_path *,
struct btree *);
-bool bch2_btree_bset_insert_key(struct btree_iter *, struct btree *,
- struct btree_node_iter *, struct bkey_i *);
+bool bch2_btree_bset_insert_key(struct btree_trans *, struct btree_path *,
+ struct btree *, struct btree_node_iter *,
+ struct bkey_i *);
void bch2_btree_add_journal_pin(struct bch_fs *, struct btree *, u64);
enum btree_insert_flags {
@@ -134,4 +135,21 @@ static inline int bch2_trans_commit(struct btree_trans *trans,
(_i) < (_trans)->updates + (_trans)->nr_updates; \
(_i)++)
+static inline struct bkey_i *btree_trans_peek_updates(struct btree_trans *trans,
+ enum btree_id btree_id,
+ struct bpos pos)
+{
+ struct btree_insert_entry *i;
+
+ trans_for_each_update(trans, i)
+ if ((cmp_int(btree_id, i->btree_id) ?:
+ bpos_cmp(pos, i->k->k.p)) <= 0) {
+ if (btree_id == i->btree_id)
+ return i->k;
+ break;
+ }
+
+ return NULL;
+}
+
#endif /* _BCACHEFS_BTREE_UPDATE_H */