btrfs-progs: check/lowmem: Fix the incorrect error message of check_extent_data_item
authorLu Fengqi <lufq.fnst@cn.fujitsu.com>
Wed, 28 Feb 2018 10:13:21 +0000 (18:13 +0800)
committerDavid Sterba <dsterba@suse.com>
Fri, 30 Mar 2018 20:15:53 +0000 (22:15 +0200)
Instead of the disk_bytenr and disk_num_bytes of the extent_item which the
file extent references, we should output the objectid and offset of the
file extent. And the leaf may be shared by the file trees, we should print
the objectid of the root and the owner of the leaf.

Fixes: b0d360b541f0 ("btrfs-progs: check: introduce function to check data backref in extent tree")
Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
check/mode-lowmem.c

index 62bcf3d..f37b1b2 100644 (file)
@@ -2631,9 +2631,9 @@ static int check_extent_data_item(struct btrfs_root *root,
 
        if (!(extent_flags & BTRFS_EXTENT_FLAG_DATA)) {
                error(
-                   "extent[%llu %llu] backref type mismatch, wanted bit: %llx",
-                   disk_bytenr, disk_num_bytes,
-                   BTRFS_EXTENT_FLAG_DATA);
+"file extent[%llu %llu] root %llu owner %llu backref type mismatch, wanted bit: %llx",
+                       fi_key.objectid, fi_key.offset, root->objectid, owner,
+                       BTRFS_EXTENT_FLAG_DATA);
                err |= BACKREF_MISMATCH;
        }
 
@@ -2722,8 +2722,9 @@ out:
                err |= BACKREF_MISSING;
        btrfs_release_path(&path);
        if (err & BACKREF_MISSING) {
-               error("data extent[%llu %llu] backref lost",
-                     disk_bytenr, disk_num_bytes);
+               error(
+               "file extent[%llu %llu] root %llu owner %llu backref lost",
+                       fi_key.objectid, fi_key.offset, root->objectid, owner);
        }
        return err;
 }