* 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),
 }
 
 static int key_search(struct extent_buffer *b, const struct btrfs_key *key,
-                     int level, int *prev_cmp, int *slot)
+                     int *prev_cmp, int *slot)
 {
        if (*prev_cmp != 0) {
-               *prev_cmp = btrfs_bin_search(b, key, level, slot);
+               *prev_cmp = btrfs_bin_search(b, key, slot);
                return *prev_cmp;
        }
 
                        }
                }
 
-               ret = key_search(b, key, level, &prev_cmp, &slot);
+               ret = key_search(b, key, &prev_cmp, &slot);
                if (ret < 0)
                        goto done;
 
                 * time.
                 */
                prev_cmp = -1;
-               ret = key_search(b, key, level, &prev_cmp, &slot);
+               ret = key_search(b, key, &prev_cmp, &slot);
                if (ret < 0)
                        goto done;
 
        while (1) {
                nritems = btrfs_header_nritems(cur);
                level = btrfs_header_level(cur);
-               sret = btrfs_bin_search(cur, min_key, level, &slot);
+               sret = btrfs_bin_search(cur, min_key, &slot);
                if (sret < 0) {
                        ret = sret;
                        goto out;
 
 
 /* ctree.c */
 int btrfs_bin_search(struct extent_buffer *eb, const struct btrfs_key *key,
-                    int level, int *slot);
+                    int *slot);
 int __pure btrfs_comp_cpu_keys(const struct btrfs_key *k1, const struct btrfs_key *k2);
 int btrfs_previous_item(struct btrfs_root *root,
                        struct btrfs_path *path, u64 min_objectid,
 
                level = btrfs_header_level(parent);
                BUG_ON(level < lowest_level);
 
-               ret = btrfs_bin_search(parent, &key, level, &slot);
+               ret = btrfs_bin_search(parent, &key, &slot);
                if (ret < 0)
                        break;
                if (ret && slot > 0)
 
                if (upper->eb && !upper->locked) {
                        if (!lowest) {
-                               ret = btrfs_bin_search(upper->eb, key,
-                                                      upper->level, &slot);
+                               ret = btrfs_bin_search(upper->eb, key, &slot);
                                if (ret < 0) {
                                        err = ret;
                                        goto next;
                        slot = path->slots[upper->level];
                        btrfs_release_path(path);
                } else {
-                       ret = btrfs_bin_search(upper->eb, key, upper->level,
-                                              &slot);
+                       ret = btrfs_bin_search(upper->eb, key, &slot);
                        if (ret < 0) {
                                err = ret;
                                goto next;