btrfs-progs: check/lowmem: Fix the incorrect error message of check_extent_data_item

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: b0d360b541 ("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>
This commit is contained in:
Lu Fengqi 2018-02-28 18:13:21 +08:00 committed by David Sterba
parent 14bf2b546d
commit 634e73e9d3

View 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;
}