The assignment of mas->min and mas->max is wrong. mas->min and mas->max should represent the range of the current node. After mas_ascend() returns, mas-min and mas->max already represent the range of the current node, so we should delete these assignments of mas->min and mas->max. Signed-off-by: Peng Zhang <zhangpeng.00@xxxxxxxxxxxxx> --- lib/maple_tree.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index f5bee48de569..d4ddf7f8adc7 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5157,9 +5157,6 @@ static inline bool mas_rewind_node(struct ma_state *mas) */ static inline bool mas_skip_node(struct ma_state *mas) { - unsigned long *pivots; - enum maple_type mt; - if (mas_is_err(mas)) return false; @@ -5173,14 +5170,7 @@ static inline bool mas_skip_node(struct ma_state *mas) mas_ascend(mas); } } while (mas->offset >= mas_data_end(mas)); - - mt = mte_node_type(mas->node); - pivots = ma_pivots(mas_mn(mas), mt); - mas->min = pivots[mas->offset] + 1; mas->offset++; - if (mas->offset < mt_slots[mt]) - mas->max = pivots[mas->offset]; - return true; } -- 2.20.1