diff --git a/lib/maple_tree.c b/lib/maple_tree.c
index b8a230f5d94e536b06e91bdbcea6cce86118fdfc..db60edb55f2f55377a4100f6655e750f39a12296 100644
--- a/lib/maple_tree.c
+++ b/lib/maple_tree.c
@@ -3725,10 +3725,9 @@ static inline int mas_root_expand(struct ma_state *mas, void *entry)
 		slot++;
 	mas->depth = 1;
 	mas_set_height(mas);
-
+	ma_set_meta(node, maple_leaf_64, 0, slot);
 	/* swap the new root into the tree */
 	rcu_assign_pointer(mas->tree->ma_root, mte_mk_root(mas->node));
-	ma_set_meta(node, maple_leaf_64, 0, slot);
 	return slot;
 }