to = left;
node_off = 0; /* src */
part_off = 0;
+ printk("sd off %u in %u in_end %u\n", sd->offset, sd->insert, insert_end);
do {
unsigned char copied = 0;
sd->split = 255;
}
sd->len++;
+ printk("node off %u src end %u\n", node_off, src->end);
} while (node_off <= src->end);
}
*/
mt_dump(mas->tree, mt_dump_dec);
+ height = mas_mt_height(mas);
mas->depth = height;
+ /*
+ * allocate left
+ * set alloc in left
+ * figure out src2
+ * rebalance leaves {
+ * allocate right, if needed
+ * set right alloc to left value
+ * set up split data
+ * split the data
+ * set up part
+ * }
+ *
+ * while ( parent is insufficient including overwrite, extra part) {
+ * allocate left
+ * figure out src2
+ * rebalance src and src 2 {
+ * allocate right, if needed
+ * set right alloc to left value
+ * set up split data
+ * split the data and insert part
+ * set up next part
+ * }
+ *
+ * allocate new parent
+ * converge
+ * copy to insert
+ * insert part
+ * skip entry (or 2)
+ * copy to end
+ * put in tree
+ *
+ */
+
mni_mas_init(&src, mas);
tmp_mas = *mas;
while (height--) {
+ printk("height %d\n", height);
mas_wr_ascend_init(&tmp_mas, &parent);
max = mt_slots[src.type] - 1;
if (ma_is_leaf(src.type))
* Absorb all the data from two nodes, which may need
* more rebalancing
*/
+ printk("Absorb src %p src2 %p\n", src.node, src2.node);
sd.split = sd.new_end + 2; /* No split */
if (!left_store) {