[PATCH 27/28] maple_tree: Don't pass end to mas_wr_append()
Liam R. Howlett
Liam.Howlett at oracle.com
Thu Jan 15 11:36:46 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 a66889658fdd4..4e6ddcdf9bc62 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -3278,18 +3278,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];
@@ -3482,7 +3481,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