diff options
author | Liam R. Howlett <Liam.Howlett@oracle.com> | 2023-11-01 18:16:19 +0100 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2023-12-12 19:56:57 +0100 |
commit | f7a59018953910032231c0a019208c4b0a4a8bc3 (patch) | |
tree | 6f445dde3565f424ac7c65cae67ce187c3d775b5 /lib/maple_tree.c | |
parent | maple_tree: remove unnecessary default labels from switch statements (diff) | |
download | linux-f7a59018953910032231c0a019208c4b0a4a8bc3.tar.xz linux-f7a59018953910032231c0a019208c4b0a4a8bc3.zip |
maple_tree: make mas_erase() more robust
mas_erase() may not deal correctly with all maple states. Make the
function more robust by ensuring the state is in one of the two acceptable
states.
Link: https://lkml.kernel.org/r/20231101171629.3612299-3-Liam.Howlett@oracle.com
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Peng Zhang <zhangpeng.00@bytedance.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'lib/maple_tree.c')
-rw-r--r-- | lib/maple_tree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/maple_tree.c b/lib/maple_tree.c index fff94a510fa8..8d379d34ea0a 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -6173,7 +6173,7 @@ void *mas_erase(struct ma_state *mas) void *entry; MA_WR_STATE(wr_mas, mas, NULL); - if (mas_is_none(mas) || mas_is_paused(mas)) + if (!mas_is_active(mas) || !mas_is_start(mas)) mas->node = MAS_START; /* Retry unnecessary when holding the write lock. */ |