cp->dst[0].node, 0, mt);
node_finalise(cp->dst[0].node, mt, cp->end);
cp->slot[0] = mt_mk_node(cp->dst[0].node, mt);
+ cp->height++;
}
printk("CONVERGED\n");
struct ma_state sib;
struct maple_copy cp;
int debug = 0;
- unsigned char count = 1;
/*
* Spanning store is different in that the write is actually from
spanning_leaf_init(&cp, mas, l_wr_mas, r_wr_mas);
do {
printk("\nlmas %p rmas %p\n", l_wr_mas->node, r_wr_mas->node);
- count++;
+ cp.height++;
spanning_data_calc(&cp, mas, l_wr_mas, r_wr_mas, &sib);
spanning_split_dest_setup(&cp, mas, l_wr_mas->type);
spanning_split_src_setup(&cp, mas, l_wr_mas, r_wr_mas, &sib);
for (int i = 0; i < cp.d_count; i++) {
printk("dump %p %lx - %lx\n", cp.dst[i].node, min, cp.dst[i].max);
mt_dump_node(mas->tree, mt_mk_node(cp.dst[i].node, cp.dst[i].mt),
- min, cp.dst[i].max, count, mt_dump_hex);
+ min, cp.dst[i].max, cp.height, mt_dump_hex);
min = cp.dst[i].max + 1;
}
}
old_enode = mas->node;
mas->node = cp.slot[0];
printk("Replace %p with %p\n", old_enode, mas->node);
- mas_wmb_replace(mas, old_enode, count);
+ mas_wmb_replace(mas, old_enode, cp.height);
mtree_range_walk(mas);
printk("range at %p[%u]\n", mas->node, mas->offset);
mt_dump(mas->tree, mt_dump_hex);