diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-01-11 06:41:59 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-01-11 07:02:08 -0500 |
commit | 4de98a2712764bceb9e0f67b1ac2f2c7862feb77 (patch) | |
tree | 94861af51e19af917d80952dfabeaa7a76901eaa /libbcachefs/btree_locking.h | |
parent | f8cbede6d18e81c804e62fd7d576310b420dcaac (diff) |
Update bcachefs sources to 02ae70070a bcachefs: Allocate new btree roots lazily
Diffstat (limited to 'libbcachefs/btree_locking.h')
-rw-r--r-- | libbcachefs/btree_locking.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libbcachefs/btree_locking.h b/libbcachefs/btree_locking.h index acfe5b59..ca2992ba 100644 --- a/libbcachefs/btree_locking.h +++ b/libbcachefs/btree_locking.h @@ -92,6 +92,7 @@ static inline void btree_node_unlock(struct btree_iter *iter, unsigned level) int lock_type = btree_node_locked_type(iter, level); EBUG_ON(!level && iter->flags & BTREE_ITER_UPTODATE); + EBUG_ON(level >= BTREE_MAX_DEPTH); if (lock_type != BTREE_NODE_UNLOCKED) six_unlock_type(&iter->nodes[level]->lock, lock_type); @@ -106,6 +107,8 @@ static inline bool btree_node_lock(struct btree *b, struct bpos pos, struct btree_iter *iter, enum six_lock_type type) { + EBUG_ON(level >= BTREE_MAX_DEPTH); + return likely(six_trylock_type(&b->lock, type)) || __bch2_btree_node_lock(b, pos, level, iter, type); } |