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);