aboutsummaryrefslogtreecommitdiff
path: root/lib/maple_tree.c
diff options
context:
space:
mode:
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;