From 84013c86b6589022d2a101742823694c788d8f4a Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Wed, 9 Dec 2020 17:02:04 -0500 Subject: [PATCH] maple_tree: mas_store, mas_store_gfp, mas_nomem restructre Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index a94329c4b5b6..b5ce3027787c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5050,22 +5050,19 @@ void *mas_store(struct ma_state *mas, void *entry) { void *existing = NULL; - if (mas->index > mas->last) - goto invalid_range; + if (mas->index > mas->last) { + mas_set_err(mas, -EINVAL); + return NULL; + } existing = _mas_store(mas, entry, true); - if (mas_is_err(mas)) + if (unlikely(mas_is_err(mas))) return existing; - if (!mte_is_leaf(mas->node)) // spanning store occurred + if (unlikely(!mte_is_leaf(mas->node))) // spanning store occurred mas->node = MAS_START; return existing; - -invalid_range: - mas_set_err(mas, -EINVAL); - return NULL; - } int mas_store_gfp(struct ma_state *mas, void *entry, gfp_t gfp) @@ -5078,13 +5075,13 @@ int mas_store_gfp(struct ma_state *mas, void *entry, gfp_t gfp) retry: _mas_store(mas, entry, true); - if (mas_nomem(mas, gfp)) + if (unlikely(mas_nomem(mas, gfp))) goto retry; - if (mas_is_err(mas)) + if (unlikely(mas_is_err(mas))) return xa_err(mas->node); - if (!mte_is_leaf(mas->node)) // spanning store occurred + if (unlikely(!mte_is_leaf(mas->node))) // spanning store occurred mas->node = MAS_START; return 0; @@ -5183,7 +5180,7 @@ void mas_destroy(struct ma_state *mas) bool mas_nomem(struct ma_state *mas, gfp_t gfp) __must_hold(mas->tree->lock) { - if (mas->node != MA_ERROR(-ENOMEM)) { + if (likely(mas->node != MA_ERROR(-ENOMEM))) { mas_destroy(mas); return false; } -- 2.50.1