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/20250410191446.2474640-7-sidhartha.kumar@oracle.com Signed-off-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Suggested-by: Liam R. Howlett <liam.howlett@oracle.com> Reviewed-by: Liam R. Howlett <Liam.Howlett@Oracle.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Wei Yang <richard.weiyang@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>pull/1253/head
parent
271152a973
commit
2a6ed1b411
|
|
@ -4083,15 +4083,6 @@ static inline void mas_wr_store_entry(struct ma_wr_state *wr_mas)
|
|||
unsigned char new_end = mas_wr_new_end(wr_mas);
|
||||
|
||||
switch (mas->store_type) {
|
||||
case wr_invalid:
|
||||
MT_BUG_ON(mas->tree, 1);
|
||||
return;
|
||||
case wr_new_root:
|
||||
mas_new_root(mas, wr_mas->entry);
|
||||
break;
|
||||
case wr_store_root:
|
||||
mas_store_root(mas, wr_mas->entry);
|
||||
break;
|
||||
case wr_exact_fit:
|
||||
rcu_assign_pointer(wr_mas->slots[mas->offset], wr_mas->entry);
|
||||
if (!!wr_mas->entry ^ !!wr_mas->content)
|
||||
|
|
@ -4113,6 +4104,14 @@ static inline void mas_wr_store_entry(struct ma_wr_state *wr_mas)
|
|||
case wr_rebalance:
|
||||
mas_wr_bnode(wr_mas);
|
||||
break;
|
||||
case wr_new_root:
|
||||
mas_new_root(mas, wr_mas->entry);
|
||||
break;
|
||||
case wr_store_root:
|
||||
mas_store_root(mas, wr_mas->entry);
|
||||
break;
|
||||
case wr_invalid:
|
||||
MT_BUG_ON(mas->tree, 1);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -4177,19 +4176,10 @@ static inline int mas_prealloc_calc(struct ma_wr_state *wr_mas, void *entry)
|
|||
unsigned char delta = height - wr_mas->vacant_height;
|
||||
|
||||
switch (mas->store_type) {
|
||||
case wr_invalid:
|
||||
WARN_ON_ONCE(1);
|
||||
break;
|
||||
case wr_new_root:
|
||||
ret = 1;
|
||||
break;
|
||||
case wr_store_root:
|
||||
if (likely((mas->last != 0) || (mas->index != 0)))
|
||||
ret = 1;
|
||||
else if (((unsigned long) (entry) & 3) == 2)
|
||||
ret = 1;
|
||||
else
|
||||
ret = 0;
|
||||
case wr_exact_fit:
|
||||
case wr_append:
|
||||
case wr_slot_store:
|
||||
ret = 0;
|
||||
break;
|
||||
case wr_spanning_store:
|
||||
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)
|
|||
case wr_node_store:
|
||||
ret = mt_in_rcu(mas->tree) ? 1 : 0;
|
||||
break;
|
||||
case wr_append:
|
||||
case wr_exact_fit:
|
||||
case wr_slot_store:
|
||||
ret = 0;
|
||||
case wr_new_root:
|
||||
ret = 1;
|
||||
break;
|
||||
case wr_store_root:
|
||||
if (likely((mas->last != 0) || (mas->index != 0)))
|
||||
ret = 1;
|
||||
else if (((unsigned long) (entry) & 3) == 2)
|
||||
ret = 1;
|
||||
else
|
||||
ret = 0;
|
||||
break;
|
||||
case wr_invalid:
|
||||
WARN_ON_ONCE(1);
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue