]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
btrfs: Remove redundant WARN_ON in walk_down_log_tree
authorNikolay Borisov <nborisov@suse.com>
Mon, 2 Dec 2019 09:40:14 +0000 (11:40 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 20 Jan 2020 15:40:51 +0000 (16:40 +0100)
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>
fs/btrfs/tree-log.c

index 9a6b1303fcabcebed3b19f593e099ddcd9056245..a2bae5c230e19c8a247fb6f5e76e7f2b0abc053b 100644 (file)
@@ -2674,14 +2674,9 @@ static noinline int walk_down_log_tree(struct btrfs_trans_handle *trans,
        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);
@@ -2748,7 +2743,6 @@ static noinline int walk_down_log_tree(struct btrfs_trans_handle *trans,
                        return ret;
                }
 
-               WARN_ON(*level <= 0);
                if (path->nodes[*level-1])
                        free_extent_buffer(path->nodes[*level-1]);
                path->nodes[*level-1] = next;
@@ -2756,9 +2750,6 @@ static noinline int walk_down_log_tree(struct btrfs_trans_handle *trans,
                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();