btrfs: print more details when checking tree block finds a problem
authorSu Yue <suy.fnst@cn.fujitsu.com>
Fri, 22 Jun 2018 01:52:15 +0000 (09:52 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 6 Aug 2018 11:12:39 +0000 (13:12 +0200)
For easier debugging, print eb->start if level is invalid.  Also make
clear if bytenr found is not expected.

Signed-off-by: Su Yue <suy.fnst@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/disk-io.c

index 2de3da7b7bdcc01fd3e6aadd37f6bf9120010182..c77afa9e5d91fdefc67d6e7ae121738fdf8b056e 100644 (file)
@@ -615,8 +615,8 @@ static int btree_readpage_end_io_hook(struct btrfs_io_bio *io_bio,
 
        found_start = btrfs_header_bytenr(eb);
        if (found_start != eb->start) {
 
        found_start = btrfs_header_bytenr(eb);
        if (found_start != eb->start) {
-               btrfs_err_rl(fs_info, "bad tree block start %llu %llu",
-                            found_start, eb->start);
+               btrfs_err_rl(fs_info, "bad tree block start, want %llu have %llu",
+                            eb->start, found_start);
                ret = -EIO;
                goto err;
        }
                ret = -EIO;
                goto err;
        }
@@ -628,8 +628,8 @@ static int btree_readpage_end_io_hook(struct btrfs_io_bio *io_bio,
        }
        found_level = btrfs_header_level(eb);
        if (found_level >= BTRFS_MAX_LEVEL) {
        }
        found_level = btrfs_header_level(eb);
        if (found_level >= BTRFS_MAX_LEVEL) {
-               btrfs_err(fs_info, "bad tree block level %d",
-                         (int)btrfs_header_level(eb));
+               btrfs_err(fs_info, "bad tree block level %d on %llu",
+                         (int)btrfs_header_level(eb), eb->start);
                ret = -EIO;
                goto err;
        }
                ret = -EIO;
                goto err;
        }