[PATCH v2 28/29] maple_tree: Don't pass end to mas_wr_append()
Liam R. Howlett
Liam.Howlett at oracle.com
Wed Jan 21 08:45:25 PST 2026
Figure out the end internally. This is necessary for future cleanups.
Signed-off-by: Liam R. Howlett <Liam.Howlett at oracle.com>
---
lib/maple_tree.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index 8ce4b252c0696..bc58c10d3a300 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -3301,18 +3301,17 @@ static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas)
/*
* mas_wr_append: Attempt to append
* @wr_mas: the maple write state
- * @new_end: The end of the node after the modification
*
* This is currently unsafe in rcu mode since the end of the node may be cached
* by readers while the node contents may be updated which could result in
* inaccurate information.
*/
-static inline void mas_wr_append(struct ma_wr_state *wr_mas,
- unsigned char new_end)
+static inline void mas_wr_append(struct ma_wr_state *wr_mas)
{
struct ma_state *mas = wr_mas->mas;
void __rcu **slots;
unsigned char end = mas->end;
+ unsigned char new_end = mas_wr_new_end(wr_mas);
if (new_end < mt_pivots[wr_mas->type]) {
wr_mas->pivots[new_end] = wr_mas->pivots[end];
@@ -3505,7 +3504,7 @@ static inline void mas_wr_store_entry(struct ma_wr_state *wr_mas)
mas_update_gap(mas);
break;
case wr_append:
- mas_wr_append(wr_mas, new_end);
+ mas_wr_append(wr_mas);
break;
case wr_slot_store:
mas_wr_slot_store(wr_mas);
--
2.47.3
More information about the maple-tree
mailing list