summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_types.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-12-12 06:21:55 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-12-12 06:25:37 -0500
commita10a41fa2b1a917b0f3b34d20175867f968b2d12 (patch)
treeb61aa3e0912c2a6928356aeb5273fb528b4f21ba /libbcachefs/btree_types.h
parent0c7db4eca3e6519043c10288cb41f8a0ee634a0b (diff)
Update bcachefs sources to f7670cba39 bcachefs: Fix for building in userspace
Diffstat (limited to 'libbcachefs/btree_types.h')
-rw-r--r--libbcachefs/btree_types.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/libbcachefs/btree_types.h b/libbcachefs/btree_types.h
index a91a37e4..0af2a7dc 100644
--- a/libbcachefs/btree_types.h
+++ b/libbcachefs/btree_types.h
@@ -244,9 +244,28 @@ struct btree_iter {
#define BTREE_ITER_MAX 8
+struct deferred_update {
+ struct journal_entry_pin journal;
+
+ spinlock_t lock;
+ unsigned gen;
+
+ u8 allocated_u64s;
+ enum btree_id btree_id;
+
+ /* must be last: */
+ struct bkey_i k;
+};
+
struct btree_insert_entry {
- struct btree_iter *iter;
- struct bkey_i *k;
+ struct bkey_i *k;
+
+ union {
+ struct btree_iter *iter;
+ struct deferred_update *d;
+ };
+
+ bool deferred;
};
struct btree_trans {
@@ -438,6 +457,7 @@ static inline bool btree_node_type_needs_gc(enum btree_node_type type)
switch (type) {
case BKEY_TYPE_BTREE:
case BKEY_TYPE_EXTENTS:
+ case BKEY_TYPE_INODES:
case BKEY_TYPE_EC:
return true;
default: