Needs fixing, should restore the maple state during the operation by saving the leaf info
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
// Store the new entry and range end.
if (dst_offset < max_piv)
dst_pivots[dst_offset] = mas->last;
+ mas->offset = dst_offset;
rcu_assign_pointer(dst_slots[dst_offset++], entry);
if (offset_end > end) // this range wrote to the end of the node.
return existing;
if (unlikely(!mte_is_leaf(mas->node))) // spanning store occurred
- mas->node = MAS_START;
+ mas_walk(mas);
return existing;
}
return xa_err(mas->node);
if (unlikely(!mte_is_leaf(mas->node))) // spanning store occurred
- mas->node = MAS_START;
+ mas_walk(mas);
return 0;