unsigned char size;
unsigned long *gaps;
- if (end >= max_end - 1)
- return;
-
- size = max_end - end;
- memset(ma_slots(node, mt) + end, 0, size * sizeof(void*));
+ printk("Finalise %p end %u max end %u\n", node, end, max_end);
+ if (end < max_end - 1) {
+ size = max_end - end;
+ memset(ma_slots(node, mt) + end, 0, size * sizeof(void*));
- gaps = ma_gaps(node, mt);
- if (gaps)
- memset(gaps + end, 0, size * sizeof(unsigned long));
+ gaps = ma_gaps(node, mt);
+ if (gaps)
+ memset(gaps + end, 0, size * sizeof(unsigned long));
- if (--size) {
- ma_set_meta(node, mt, 0, end - 1);
if (--size)
memset(ma_pivots(node, mt) + end, 0, size * sizeof(unsigned long));
}
+
+ if (mt == maple_arange_64)
+ ma_set_meta(node, mt, 0, end - 1);
+ else if (end <= max_end - 1)
+ ma_set_meta(node, mt, 0, end - 1);
}
static inline void append_node_cp(struct maple_copy *cp,