mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 01:02:08 +00:00
maple_tree: we don't set offset to MAPLE_NODE_SLOTS on error
When mas_anode_descend() not find gap, it sets -EBUSY instead of setting offset to MAPLE_NODE_SLOTS. Link: https://lkml.kernel.org/r/20241116014805.11547-4-richard.weiyang@gmail.com Signed-off-by: Wei Yang <richard.weiyang@gmail.com> Reviewed-by: Liam R. Howlett <Liam.Howlett@Oracle.com> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
f4498ceafa
commit
346709b638
@ -5000,8 +5000,8 @@ static inline void mas_awalk(struct ma_state *mas, unsigned long size)
|
||||
* There are 4 options:
|
||||
* go to child (descend)
|
||||
* go back to parent (ascend)
|
||||
* no gap found. (return, slot == MAPLE_NODE_SLOTS)
|
||||
* found the gap. (return, slot != MAPLE_NODE_SLOTS)
|
||||
* no gap found. (return, error == -EBUSY)
|
||||
* found the gap. (return)
|
||||
*/
|
||||
while (!mas_is_err(mas) && !mas_anode_descend(mas, size)) {
|
||||
if (last == mas->node)
|
||||
@ -5086,9 +5086,6 @@ int mas_empty_area(struct ma_state *mas, unsigned long min,
|
||||
return xa_err(mas->node);
|
||||
|
||||
offset = mas->offset;
|
||||
if (unlikely(offset == MAPLE_NODE_SLOTS))
|
||||
return -EBUSY;
|
||||
|
||||
node = mas_mn(mas);
|
||||
mt = mte_node_type(mas->node);
|
||||
pivots = ma_pivots(node, mt);
|
||||
|
Loading…
Reference in New Issue
Block a user