Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Sidhartha Kumar and committed by
Andrew Morton
2a6ed1b4 271152a9

+25 -26
+25 -26
lib/maple_tree.c
··· 4083 4083 unsigned char new_end = mas_wr_new_end(wr_mas); 4084 4084 4085 4085 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; 4095 4086 case wr_exact_fit: 4096 4087 rcu_assign_pointer(wr_mas->slots[mas->offset], wr_mas->entry); 4097 4088 if (!!wr_mas->entry ^ !!wr_mas->content) ··· 4104 4113 case wr_rebalance: 4105 4114 mas_wr_bnode(wr_mas); 4106 4115 break; 4116 + case wr_new_root: 4117 + mas_new_root(mas, wr_mas->entry); 4118 + break; 4119 + case wr_store_root: 4120 + mas_store_root(mas, wr_mas->entry); 4121 + break; 4122 + case wr_invalid: 4123 + MT_BUG_ON(mas->tree, 1); 4107 4124 } 4108 4125 4109 4126 return; ··· 4176 4177 unsigned char delta = height - wr_mas->vacant_height; 4177 4178 4178 4179 switch (mas->store_type) { 4179 - case wr_invalid: 4180 - WARN_ON_ONCE(1); 4181 - break; 4182 - case wr_new_root: 4183 - ret = 1; 4184 - break; 4185 - case wr_store_root: 4186 - if (likely((mas->last != 0) || (mas->index != 0))) 4187 - ret = 1; 4188 - else if (((unsigned long) (entry) & 3) == 2) 4189 - ret = 1; 4190 - else 4191 - ret = 0; 4180 + case wr_exact_fit: 4181 + case wr_append: 4182 + case wr_slot_store: 4183 + ret = 0; 4192 4184 break; 4193 4185 case wr_spanning_store: 4194 4186 if (wr_mas->sufficient_height < wr_mas->vacant_height) ··· 4199 4209 case wr_node_store: 4200 4210 ret = mt_in_rcu(mas->tree) ? 1 : 0; 4201 4211 break; 4202 - case wr_append: 4203 - case wr_exact_fit: 4204 - case wr_slot_store: 4205 - ret = 0; 4212 + case wr_new_root: 4213 + ret = 1; 4214 + break; 4215 + case wr_store_root: 4216 + if (likely((mas->last != 0) || (mas->index != 0))) 4217 + ret = 1; 4218 + else if (((unsigned long) (entry) & 3) == 2) 4219 + ret = 1; 4220 + else 4221 + ret = 0; 4222 + break; 4223 + case wr_invalid: 4224 + WARN_ON_ONCE(1); 4206 4225 } 4207 4226 4208 4227 return ret;