maple_tree: introduce mas_wr_prealloc_setup()
authorSidhartha Kumar <sidhartha.kumar@oracle.com>
Wed, 14 Aug 2024 16:19:29 +0000 (12:19 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 2 Sep 2024 03:26:14 +0000 (20:26 -0700)
Introduce a helper function, mas_wr_prealoc_setup(), that will set up a
maple write state in order to start a walk of a maple tree.

Link: https://lkml.kernel.org/r/20240814161944.55347-3-sidhartha.kumar@oracle.com
Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/maple_tree.c

index 884e2d1..407c0be 100644 (file)
@@ -5399,6 +5399,13 @@ reset:
        mas_reset(wr_mas->mas);
 }
 
+static inline void mas_wr_prealloc_setup(struct ma_wr_state *wr_mas)
+{
+       struct ma_state *mas = wr_mas->mas;
+
+       mas_wr_store_setup(wr_mas);
+       wr_mas->content = mas_start(mas);
+}
 /* Interface */
 
 /**
@@ -5509,8 +5516,7 @@ int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp)
        if (unlikely(!mas->index && mas->last == ULONG_MAX))
                goto ask_now;
 
-       mas_wr_store_setup(&wr_mas);
-       wr_mas.content = mas_start(mas);
+       mas_wr_prealloc_setup(&wr_mas);
        /* Root expand */
        if (unlikely(mas_is_none(mas) || mas_is_ptr(mas)))
                goto ask_now;