]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: Don't pass end to mas_wr_append()
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 14 Oct 2025 20:56:57 +0000 (16:56 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Wed, 15 Oct 2025 20:17:51 +0000 (16:17 -0400)
Figure out the end internally.  This is is necessary for future
cleanups.

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
lib/maple_tree.c

index 4d5ea57c793fbe23b26b1b2b823a63358143c712..10f8ba0939abfb60bb56b2bf069475d3b315e844 100644 (file)
@@ -3276,18 +3276,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];
@@ -3480,7 +3479,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);