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

bcachefs: Optimize __bch2_btree_node_iter_advance()

This replaces an expensive memmove() call with an open-coded version.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>

+4 -1
+4 -1
fs/bcachefs/bset.c
··· 1429 1429 EBUG_ON(iter->data->k > iter->data->end); 1430 1430 1431 1431 if (unlikely(__btree_node_iter_set_end(iter, 0))) { 1432 - bch2_btree_node_iter_set_drop(iter, iter->data); 1432 + /* avoid an expensive memmove call: */ 1433 + iter->data[0] = iter->data[1]; 1434 + iter->data[1] = iter->data[2]; 1435 + iter->data[2] = (struct btree_node_iter_set) { 0, 0 }; 1433 1436 return; 1434 1437 } 1435 1438