diff --git a/check/main.c b/check/main.c index bb17623f..38154ad7 100644 --- a/check/main.c +++ b/check/main.c @@ -6478,7 +6478,7 @@ static int run_next_block(struct btrfs_root *root, * technically unreferenced and don't need to be worried about. */ if (ri != NULL && ri->drop_level && level > ri->drop_level) { - ret = btrfs_bin_search(buf, &ri->drop_key, level, &i); + ret = btrfs_bin_search(buf, &ri->drop_key, &i); if (ret && i > 0) i--; } diff --git a/ctree.c b/ctree.c index 3559680f..d4197535 100644 --- a/ctree.c +++ b/ctree.c @@ -666,9 +666,9 @@ static int generic_bin_search(struct extent_buffer *eb, unsigned long p, * leaves vs nodes */ int btrfs_bin_search(struct extent_buffer *eb, const struct btrfs_key *key, - int level, int *slot) + int *slot) { - if (level == 0) + if (btrfs_header_level(eb) == 0) return generic_bin_search(eb, offsetof(struct btrfs_leaf, items), sizeof(struct btrfs_item), @@ -1196,7 +1196,7 @@ again: ret = check_block(fs_info, p, level); if (ret) return -1; - ret = btrfs_bin_search(b, key, level, &slot); + ret = btrfs_bin_search(b, key, &slot); if (level != 0) { if (ret && slot > 0) slot -= 1; diff --git a/ctree.h b/ctree.h index 2a871187..10faf092 100644 --- a/ctree.h +++ b/ctree.h @@ -2659,7 +2659,7 @@ int btrfs_search_slot_for_read(struct btrfs_root *root, struct btrfs_path *p, int find_higher, int return_any); int btrfs_bin_search(struct extent_buffer *eb, const struct btrfs_key *key, - int level, int *slot); + int *slot); int btrfs_find_item(struct btrfs_root *fs_root, struct btrfs_path *found_path, u64 iobjectid, u64 ioff, u8 key_type, struct btrfs_key *found_key);