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; > } >
signature.asc
Description: OpenPGP digital signature