]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: mas_wr_node_store() general cleanup
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 25 Sep 2025 02:38:21 +0000 (22:38 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 25 Sep 2025 02:39:11 +0000 (22:39 -0400)
Set variables after declaration, order declaration by length of lines.
Remove the height variable as it is seldom used.
Don't memcpy size 0.
change type of slots size to void __rcu *

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

index 741ec1e020b5370860a7c3aa93a77cb32c6e5cd4..4c8fe5d3889f287d41761b31efe31e5beb8ad351 100644 (file)
@@ -3454,18 +3454,22 @@ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas)
  */
 static inline void mas_wr_node_store(struct ma_wr_state *wr_mas)
 {
-       struct ma_state *mas = wr_mas->mas;
-       void __rcu **dst_slots;
-       unsigned long *dst_pivots;
-       unsigned char dst_offset, offset_end = wr_mas->offset_end;
+       unsigned char dst_offset, offset_end;
+       unsigned char copy_size, node_pivots;
        struct maple_node reuse, *newnode;
-       unsigned char copy_size, node_pivots = mt_pivots[wr_mas->type];
-       bool in_rcu = mt_in_rcu(mas->tree);
-       unsigned char height = mas_mt_height(mas);
+       unsigned long *dst_pivots;
+       void __rcu **dst_slots;
        unsigned char new_end;
+       struct ma_state *mas;
+       bool in_rcu;
+
 
+       mas = wr_mas->mas;
+       in_rcu = mt_in_rcu(mas->tree);
+       offset_end = wr_mas->offset_end;
+       node_pivots = mt_pivots[wr_mas->type];
        /* Assume last adds an entry */
-       new_end = mas->end + 1 - wr_mas->offset_end + mas->offset;
+       new_end = mas->end + 1 - offset_end + mas->offset;
        if (mas->last == wr_mas->end_piv) {
                offset_end++; /* don't copy this offset */
                new_end--;
@@ -3485,8 +3489,10 @@ static inline void mas_wr_node_store(struct ma_wr_state *wr_mas)
        dst_pivots = ma_pivots(newnode, wr_mas->type);
        dst_slots = ma_slots(newnode, wr_mas->type);
        /* Copy from start to insert point */
-       memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset);
-       memcpy(dst_slots, wr_mas->slots, sizeof(void *) * mas->offset);
+       if (mas->offset) {
+               memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset);
+               memcpy(dst_slots, wr_mas->slots, sizeof(void __rcu *) * mas->offset);
+       }
 
        /* Handle insert of new range starting after old range */
        if (wr_mas->r_min < mas->index) {
@@ -3524,7 +3530,7 @@ done:
                struct maple_enode *old_enode = mas->node;
 
                mas->node = mt_mk_node(newnode, wr_mas->type);
-               mas_replace_node(mas, old_enode, height);
+               mas_replace_node(mas, old_enode, mas_mt_height(mas));
        } else {
                memcpy(wr_mas->node, newnode, sizeof(struct maple_node));
        }