aboutsummaryrefslogtreecommitdiff
path: root/lib/maple_tree.c
diff options
context:
space:
mode:
authorSidhartha Kumar <sidhartha.kumar@oracle.com>2024-08-14 12:19:29 -0400
committerAndrew Morton <akpm@linux-foundation.org>2024-09-01 20:26:14 -0700
commit19138a2cc1ad82b74fb720411a2054db0522be2d (patch)
treec29f3a7e2a592d3f4fb122c137ff21498e8ad3ac /lib/maple_tree.c
parentbd164d81a767f33c30d5c5b50b775631699ee976 (diff)
maple_tree: introduce mas_wr_prealloc_setup()
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>
Diffstat (limited to 'lib/maple_tree.c')
-rw-r--r--lib/maple_tree.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index 884e2d130876..407c0be6e42f 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -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;