i = mt_wr_split_data(&src_info, &left, &right, &ma_part, split,
mas->offset, split, 0, wr_mas->offset_end,
total, state, 0);
-#if 0
- if (split >= mas->offset) {
- unsigned char space;
-
- printk("Store in left\n");
- if (mas->offset) {
- printk("%d %u\n", __LINE__, i);
- state[i].info = &src_info;
- printk("src is info %p\n", src_info.node);
- mns_mni_init(&state[i++], &left, 0, mas->offset);
- }
-
- printk("%d %u\n", __LINE__, i);
- state[i].part = &ma_part;
- space = split - mas->offset + 1;
- if (space >= ma_part.size) {
- printk("%d %u\n", __LINE__, i);
- mns_mni_init(&state[i], &left, 0, ma_part.size);
- state[i++].use_part = true;
- space -= ma_part.size;
- } else {
- printk("%d %u\n", __LINE__, i);
- /* The insert part spans the left and right */
- mns_mni_init(&state[i], &left, 0, space);
- state[i].use_part = true;
- if (mns_ends_in_null(&state[i])) {
- printk("%d %u NULL split\n", __LINE__, i);
- state[i].size--;
- split--;
- }
-
- space = ma_part.size - state[i].size;
- i++;
- printk("%d %u\n", __LINE__, i);
- state[i].part = &ma_part;
- mns_mni_init(&state[i], &right, state[i - 1].size,
- space);
- state[i].use_part = true;
- i++;
- space = 0;
- }
-
- if (space) {
- printk("%d %u\n", __LINE__, i);
- state[i].info = &src_info;
- printk("src is info %p\n", src_info.node);
- mns_mni_init(&state[i], &left, wr_mas->offset_end + 1,
- space);
-
- if (mns_ends_in_null(&state[i])) {
- printk("%d %u NULL split\n", __LINE__, i);
- state[i - 1].size--;
- split--;
- }
- i++;
- }
-
- printk("%d %u\n", __LINE__, i);
- state[i].info = &src_info;
- printk("src is info %p\n", src_info.node);
- mns_mni_init(&state[i++], &right, split + 1, mas->end - split);
- } else {
- printk("Store in right\n");
- printk("src is info %p\n", src_info.node);
- state[i].info = &src_info;
- split++; /* it's a size */
- mns_mni_init(&state[i], &left, 0, split);
- if (mns_ends_in_null(&state[i])) {
- printk("Ends in null, move split\n");
- state[i].size--;
- split--;
- }
- i++;
-
-
- if (mas->offset > split) {
- printk("right node will get %u - %u\n", split, mas->offset - split);
- state[i].info = &src_info;
- mns_mni_init(&state[i++], &right, split,
- mas->offset - split);
- printk("src is info %p\n", src_info.node);
- }
- printk("Store part next 0 + %u\n", ma_part.size);
- state[i].part = &ma_part;
- mns_mni_init(&state[i], &right, 0, ma_part.size);
- state[i++].use_part = true;
- if (wr_mas->offset_end < mas->end) {
- state[i].info = &src_info;
- mns_mni_init(&state[i++], &right, wr_mas->offset_end + 1,
- mas->end - wr_mas->offset_end);
- printk("src is info %p\n", src_info.node);
- }
- }
-#endif
-
mns_assemble(state, i);
mni_finalise(&left);
mni_finalise(&right);
i = mt_wr_split_data(&src_info, &left, &right, &ma_part, split,
mas->offset, split, 0, wr_mas->offset_end,
total, state, 0);
-#if 0
- if (split >= mas->offset) {
- unsigned char space; /* size remaining in left */
-
- printk("%d\n", __LINE__);
- if (mas->offset) {
- state[i].info = &src_info;
- mns_mni_init(&state[i++], &left, 0, mas->offset);
- }
-
- state[i].part = &ma_part;
- space = split - mas->offset + 1;
- if (space >= ma_part.size) {
- mns_mni_init(&state[i], &left, 0, ma_part.size);
- state[i++].use_part = true;
- } else {
- mns_mni_init(&state[i], &left, 0, space);
- state[i++].use_part = true;
- state[i].part = &ma_part;
- mns_mni_init(&state[i], &right, space - 1, ma_part.size);
- state[i++].use_part = true;
-
- }
-
- if (split > wr_mas->offset_end) {
- state[i].info = &src_info;
- mns_mni_init(&state[i++], &left, wr_mas->offset_end + 1,
- split - wr_mas->offset_end + 1);
- }
-
- if (mns_ends_in_null(&state[i - 1])) {
- state[i - 1].size--;
- split--;
- }
-
- state[i].info = &src_info;
- mns_mni_init(&state[i++], &right, split + 1, mas->end - split + 1);
- } else {
- printk("%d\n", __LINE__);
- printk("src is %p\n", src_info.node);
- state[i].info = &src_info;
- mns_mni_init(&state[i], &left, 0, split);
- if (mns_ends_in_null(&state[i])) {
- state[i].size++;
- split++;
- }
- i++;
-
- if (mas->offset > split) {
- state[i].info = &src_info;
- printk("\t\tcp %u-%u\n", split , mas->offset);
- mns_mni_init(&state[i++], &right, split,
- mas->offset - split);
- }
- state[i].part = &ma_part;
- mns_mni_init(&state[i], &right, 0, ma_part.size);
- state[i++].use_part = true;
- if (wr_mas->offset_end < mas->end) {
- printk("%d\n", __LINE__);
- state[i].info = &src_info;
- mns_mni_init(&state[i++], &right, wr_mas->offset_end + 1,
- mas->end - wr_mas->offset_end + 1);
- }
- }
-#endif
-
mns_assemble(state, i);
mni_finalise(&left);
mni_finalise(&right);