level <0 and level >= BTRFS_MAX_LEVEL are already performed upon
extent buffer read by tree checker in btrfs_check_node.
go. As far as 'level <= 0'  we are guaranteed that level is '> 0'
because the value of level _before_ reading 'next' is larger than 1
(otherwise we wouldn't have executed that code at all) this in turn
guarantees that 'level' after btrfs_read_buffer is 'level - 1' since
we verify this invariant in:
    btrfs_read_buffer
     btree_read_extent_buffer_pages
      btrfs_verify_level_key
This guarantees that level can never be '<= 0' so the warn on is
never triggered.
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
        u32 blocksize;
        int ret = 0;
 
-       WARN_ON(*level < 0);
-       WARN_ON(*level >= BTRFS_MAX_LEVEL);
-
        while (*level > 0) {
                struct btrfs_key first_key;
 
-               WARN_ON(*level < 0);
-               WARN_ON(*level >= BTRFS_MAX_LEVEL);
                cur = path->nodes[*level];
 
                WARN_ON(btrfs_header_level(cur) != *level);
                        return ret;
                }
 
-               WARN_ON(*level <= 0);
                if (path->nodes[*level-1])
                        free_extent_buffer(path->nodes[*level-1]);
                path->nodes[*level-1] = next;
                path->slots[*level] = 0;
                cond_resched();
        }
-       WARN_ON(*level < 0);
-       WARN_ON(*level >= BTRFS_MAX_LEVEL);
-
        path->slots[*level] = btrfs_header_nritems(path->nodes[*level]);
 
        cond_resched();