On 2018年02月28日 18:13, Lu Fengqi wrote:
> 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.f...@cn.fujitsu.com>
> ---
> V2: Output the objectid of the root and the owner of the leaf.
> 
>  check/mode-lowmem.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/check/mode-lowmem.c b/check/mode-lowmem.c
> index 62bcf3d2e126..f37b1b2c1571 100644
> --- a/check/mode-lowmem.c
> +++ b/check/mode-lowmem.c
> @@ -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,

Indeed this is much easier to identify the problem.

Reviewed-by: Qu Wenruo <w...@suse.com>

Thanks,
Qu

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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to