Lines Matching refs:level
96 #define insert_lock(s, b) ((b)->level <= (s)->lock)
118 int _r, l = (b)->level - 1; \
142 rw_lock(_w, _b, _b->level); \
165 if (b->level && b->keys.nsets) in bch_btree_init_next()
557 #define mca_reserve(c) (((c->root && c->root->level) \
558 ? c->root->level : 1) * 8 + 16)
889 struct bkey *k, int level) in mca_alloc() argument
934 lock_set_subclass(&b->lock.dep_map, level + 1, _THIS_IP_); in mca_alloc()
938 b->level = level; in mca_alloc()
940 if (!b->level) in mca_alloc()
969 struct bkey *k, int level, bool write, in bch_btree_node_get() argument
975 BUG_ON(level < 0); in bch_btree_node_get()
984 b = mca_alloc(c, op, k, level); in bch_btree_node_get()
997 rw_lock(write, b, level); in bch_btree_node_get()
1002 BUG_ON(b->level != level); in bch_btree_node_get()
1031 b = mca_alloc(parent->c, NULL, k, parent->level - 1); in btree_node_prefetch()
1066 int level, bool wait, in __bch_btree_node_alloc() argument
1080 b = mca_alloc(c, op, &k.key, level); in __bch_btree_node_alloc()
1108 struct btree_op *op, int level, in bch_btree_node_alloc() argument
1111 return __bch_btree_node_alloc(c, op, level, op != NULL, parent); in bch_btree_node_alloc()
1117 struct btree *n = bch_btree_node_alloc(b->c, op, b->level, b->parent); in btree_node_alloc_replacement()
1151 unsigned i, reserve = (c->root->level - b->level) * 2 + 1; in btree_check_reserve()
1171 static uint8_t __bch_btree_mark_key(struct cache_set *c, int level, in __bch_btree_mark_key() argument
1201 (GC_MARK(g) == GC_MARK_METADATA) != (level != 0), in __bch_btree_mark_key()
1203 GC_MARK(g), level); in __bch_btree_mark_key()
1205 if (level) in __bch_btree_mark_key()
1223 #define btree_mark_key(b, k) __bch_btree_mark_key(b->c, b->level, k)
1225 void bch_initial_mark_key(struct cache_set *c, int level, struct bkey *k) in bch_initial_mark_key() argument
1236 if (level && bkey_cmp(k, &ZERO_KEY)) in bch_initial_mark_key()
1238 else if (!level && b->prio == BTREE_PRIO) in bch_initial_mark_key()
1242 __bch_btree_mark_key(c, level, k); in bch_initial_mark_key()
1530 r->b = bch_btree_node_get(b->c, op, k, b->level - 1, in btree_gc_recurse()
1555 if (last->b->level) { in btree_gc_recurse()
1617 __bch_btree_mark_key(b->c, b->level + 1, &b->key); in bch_btree_gc_root()
1619 if (b->level) { in bch_btree_gc_root()
1816 bch_initial_mark_key(b->c, b->level, k); in bch_btree_check_recurse()
1818 bch_initial_mark_key(b->c, b->level + 1, &b->key); in bch_btree_check_recurse()
1820 if (b->level) { in bch_btree_check_recurse()
1932 if (!b->level) in bch_btree_insert_keys()
1954 BUG_ON(!bch_keylist_empty(insert_keys) && b->level); in bch_btree_insert_keys()
1974 if (!b->level) in btree_split()
1992 n2 = bch_btree_node_alloc(b->c, op, b->level, b->parent); in btree_split()
1997 n3 = bch_btree_node_alloc(b->c, op, b->level + 1, NULL); in btree_split()
2084 WARN(1, "bcache: btree split failed (level %u)", b->level); in btree_split()
2101 BUG_ON(b->level && replace_key); in bch_btree_insert_node()
2119 if (!b->level) in bch_btree_insert_node()
2133 op->lock = b->c->root->level + 1; in bch_btree_insert_node()
2135 } else if (op->lock <= b->c->root->level) { in bch_btree_insert_node()
2136 op->lock = b->c->root->level + 1; in bch_btree_insert_node()
2163 rw_lock(true, b, b->level); in bch_btree_insert_check_key()
2167 op->lock = b->level; in bch_btree_insert_check_key()
2274 if (b->level) { in bch_btree_map_nodes_recurse()
2291 if (!b->level || flags == MAP_ALL_NODES) in bch_btree_map_nodes_recurse()
2314 ret = !b->level in bch_btree_map_keys_recurse()
2323 if (!b->level && (flags & MAP_END_KEY)) in bch_btree_map_keys_recurse()