Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
unsigned long *range_start)
{
void *entry = NULL;
+ struct maple_enode *prev_node;
unsigned long index = mas->index;
- unsigned char slot;
mas->offset++;
retry:
*range_start = mas->last + 1;
while (!mas_is_none(mas)) {
- struct maple_enode *last_node = mas->node;
- slot = mas->offset;
- if (slot >= mt_slot_count(mas->node))
+ if (mas->offset >= mt_slot_count(mas->node))
goto next_node;
if (!mte_is_leaf(mas->node) || !mas->offset) {
+ prev_node = mas->node;
*range_start = mas_first_entry(mas, limit);
if (mas_is_none(mas)) {
- mas->node = last_node;
+ mas->node = prev_node;
goto next_node;
}
}