Skip to content

Commit 2a6ed1b

Browse files
sidkumar99akpm00
authored andcommitted
maple_tree: reorder mas->store_type case statements
Move the unlikely case that mas->store_type is invalid to be the last evaluated case and put liklier cases higher up. Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Sidhartha Kumar <[email protected]> Suggested-by: Liam R. Howlett <[email protected]> Reviewed-by: Liam R. Howlett <[email protected]> Cc: Matthew Wilcox (Oracle) <[email protected]> Cc: Wei Yang <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
1 parent 271152a commit 2a6ed1b

File tree

1 file changed

+25
-26
lines changed

1 file changed

+25
-26
lines changed

lib/maple_tree.c

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4083,15 +4083,6 @@ static inline void mas_wr_store_entry(struct ma_wr_state *wr_mas)
40834083
unsigned char new_end = mas_wr_new_end(wr_mas);
40844084

40854085
switch (mas->store_type) {
4086-
case wr_invalid:
4087-
MT_BUG_ON(mas->tree, 1);
4088-
return;
4089-
case wr_new_root:
4090-
mas_new_root(mas, wr_mas->entry);
4091-
break;
4092-
case wr_store_root:
4093-
mas_store_root(mas, wr_mas->entry);
4094-
break;
40954086
case wr_exact_fit:
40964087
rcu_assign_pointer(wr_mas->slots[mas->offset], wr_mas->entry);
40974088
if (!!wr_mas->entry ^ !!wr_mas->content)
@@ -4113,6 +4104,14 @@ static inline void mas_wr_store_entry(struct ma_wr_state *wr_mas)
41134104
case wr_rebalance:
41144105
mas_wr_bnode(wr_mas);
41154106
break;
4107+
case wr_new_root:
4108+
mas_new_root(mas, wr_mas->entry);
4109+
break;
4110+
case wr_store_root:
4111+
mas_store_root(mas, wr_mas->entry);
4112+
break;
4113+
case wr_invalid:
4114+
MT_BUG_ON(mas->tree, 1);
41164115
}
41174116

41184117
return;
@@ -4177,19 +4176,10 @@ static inline int mas_prealloc_calc(struct ma_wr_state *wr_mas, void *entry)
41774176
unsigned char delta = height - wr_mas->vacant_height;
41784177

41794178
switch (mas->store_type) {
4180-
case wr_invalid:
4181-
WARN_ON_ONCE(1);
4182-
break;
4183-
case wr_new_root:
4184-
ret = 1;
4185-
break;
4186-
case wr_store_root:
4187-
if (likely((mas->last != 0) || (mas->index != 0)))
4188-
ret = 1;
4189-
else if (((unsigned long) (entry) & 3) == 2)
4190-
ret = 1;
4191-
else
4192-
ret = 0;
4179+
case wr_exact_fit:
4180+
case wr_append:
4181+
case wr_slot_store:
4182+
ret = 0;
41934183
break;
41944184
case wr_spanning_store:
41954185
if (wr_mas->sufficient_height < wr_mas->vacant_height)
@@ -4209,10 +4199,19 @@ static inline int mas_prealloc_calc(struct ma_wr_state *wr_mas, void *entry)
42094199
case wr_node_store:
42104200
ret = mt_in_rcu(mas->tree) ? 1 : 0;
42114201
break;
4212-
case wr_append:
4213-
case wr_exact_fit:
4214-
case wr_slot_store:
4215-
ret = 0;
4202+
case wr_new_root:
4203+
ret = 1;
4204+
break;
4205+
case wr_store_root:
4206+
if (likely((mas->last != 0) || (mas->index != 0)))
4207+
ret = 1;
4208+
else if (((unsigned long) (entry) & 3) == 2)
4209+
ret = 1;
4210+
else
4211+
ret = 0;
4212+
break;
4213+
case wr_invalid:
4214+
WARN_ON_ONCE(1);
42164215
}
42174216

42184217
return ret;

0 commit comments

Comments
 (0)