Btrfs-progs: fsck: fix wrong return value in check_block()
authorWang Shilong <wangsl.fnst@cn.fujitsu.com>
Mon, 24 Feb 2014 11:55:14 +0000 (19:55 +0800)
committerChris Mason <clm@fb.com>
Fri, 21 Mar 2014 13:23:25 +0000 (06:23 -0700)
We found btrfsck will output backrefs mismatch while the filesystem
is defenitely ok.

The problem is that check_block() don't return right value,which
makes btrfsck won't walk all tree blocks thus we don't get a consistent
filesystem, we will fail to check extent refs etc.

Reported-by: Gui Hecheng <guihc.fnst@cn.fujitsu.com>
Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
cmds-check.c

index 96c003b..4cdeac8 100644 (file)
@@ -2477,7 +2477,7 @@ static int check_block(struct btrfs_trans_handle *trans,
        struct cache_extent *cache;
        struct btrfs_key key;
        enum btrfs_tree_block_status status;
-       int ret = 1;
+       int ret = 0;
        int level;
 
        cache = lookup_cache_extent(extent_cache, buf->start, buf->len);