Lines Matching refs:nodes

41 static void found_btree_nodes_to_text(struct printbuf *out, struct bch_fs *c, found_btree_nodes nodes)
44 darray_for_each(nodes, i) {
98 * Given two found btree nodes, if their sequence numbers are equal, take the
173 if (darray_push(&f->nodes, n))
310 prt_str(&buf, "overlapping btree nodes with same seq! halting\n ");
330 if (f->nodes.nr)
339 if (!f->nodes.nr) {
340 bch_err(c, "%s: no btree nodes found", __func__);
347 prt_printf(&buf, "%s: nodes found:\n", __func__);
348 found_btree_nodes_to_text(&buf, c, f->nodes);
352 sort(f->nodes.data, f->nodes.nr, sizeof(f->nodes.data[0]), found_btree_node_cmp_cookie, NULL);
355 darray_for_each(f->nodes, i) {
356 struct found_btree_node *prev = dst ? f->nodes.data + dst - 1 : NULL;
367 f->nodes.data[dst++] = *i;
370 f->nodes.nr = dst;
372 sort(f->nodes.data, f->nodes.nr, sizeof(f->nodes.data[0]), found_btree_node_cmp_pos, NULL);
376 prt_printf(&buf, "%s: nodes after merging replicas:\n", __func__);
377 found_btree_nodes_to_text(&buf, c, f->nodes);
382 darray_for_each(f->nodes, i) {
386 ret = handle_overwrites(c, i, &darray_top(f->nodes));
391 f->nodes.data[dst++] = *i;
393 f->nodes.nr = dst;
397 prt_printf(&buf, "%s: nodes found after overwrites:\n", __func__);
398 found_btree_nodes_to_text(&buf, c, f->nodes);
402 eytzinger0_sort(f->nodes.data, f->nodes.nr, sizeof(f->nodes.data[0]), found_btree_node_cmp_pos, NULL);
419 for (size_t _idx = eytzinger0_find_gt((_f)->nodes.data, (_f)->nodes.nr, \
420 sizeof((_f)->nodes.data[0]), \
422 _idx < (_f)->nodes.nr && \
423 (_f)->nodes.data[_idx].btree_id == _search.btree_id && \
424 (_f)->nodes.data[_idx].level == _search.level && \
425 bpos_lt((_f)->nodes.data[_idx].min_key, _search.max_key); \
426 _idx = eytzinger0_next(_idx, (_f)->nodes.nr))
440 if (f->nodes.data[idx].seq > BTREE_NODE_SEQ(b->data))
491 struct found_btree_node n = f->nodes.data[idx];
520 darray_exit(&f->nodes);