btrfs: speed up and simplify generic_bin_search
authorDavid Sterba <dsterba@suse.com>
Wed, 29 Apr 2020 21:23:37 +0000 (23:23 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 May 2020 09:25:33 +0000 (11:25 +0200)
commit5cd17f343bd1c47dc673260fa2973abc14ecc549
tree4dc319fad6bf754e73054a0fcd529d18ad203549
parentce7afe8782a5293edbf4bc2165ac4a866ed430db
btrfs: speed up and simplify generic_bin_search

The bin search jumps over the extent buffer item keys, comparing
directly the bytes if the key is in one page, or storing it in a
temporary buffer in case it spans two pages.

The mapping start and length are obtained from map_private_extent_buffer,
which is heavy weight compared to what we need. We know the key size and
can find out the eb page in a simple way.  For keys spanning two pages
the fallback read_extent_buffer is used.

The temporary variables are reduced and moved to the scope of use.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.c