fs: btrfs: fix false negatives in ROOT_ITEM search
authorPierre Bourdon <delroth@gmail.com>
Sat, 13 Apr 2019 21:50:49 +0000 (23:50 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 26 Apr 2019 21:53:15 +0000 (17:53 -0400)
commit633967f9818cb6a0e87ffa8cba33148a5bcc6edb
treed39538815561b60490eb32e5d394609090b7e69f
parent74ee9dc502de45bf44a8d5b94458ef12437085f4
fs: btrfs: fix false negatives in ROOT_ITEM search

ROOT_ITEMs in btrfs are referenced without knowing their actual "offset"
value. To perform these searches using only two items from the key, the
btrfs driver uses a special "btrfs_search_tree_key_type" function.

The algorithm used by that function to transform a 3-tuple search into a
2-tuple search was subtly broken, leading to items not being found if
they were the first in their tree node.

This commit fixes btrfs_search_tree_key_type to properly behave in these
situations.

Signed-off-by: Pierre Bourdon <delroth@gmail.com>
Cc: Marek Behun <marek.behun@nic.cz>
fs/btrfs/ctree.h