btrfs-progs/check
Lu Fengqi 905b3d18ae btrfs-progs: check/lowmem: Fix false alert of data extent backref lost for snapshot
Btrfs lowmem check reports the following false alert:
------
ERROR: file extent[267 2162688] root 256 owner 5 backref lost
------

The file extent is in the leaf which is shared by file tree 256 and fs
tree.
------
leaf 30605312 items 46 free space 4353 generation 7 owner 5
......
        item 45 key (267 EXTENT_DATA 2162688) itemoff 5503 itemsize 53
                generation 7 type 2 (prealloc)
                prealloc data disk byte 13631488 nr 65536
                prealloc data offset 32768 nr 32768
------

And there is the corresponding extent_data_ref item in the extent tree.
------
        item 1 key (13631488 EXTENT_DATA_REF 1007496934287921081) itemoff 15274 itemsize 28
                extent data backref root 5 objectid 267 offset 2129920 count 1
------

The offset of EXTENT_DATA_REF which is the hash of the owner root objectid,
the inode number and the calculated offset (file offset - extent offset).

What caused the false alert is the code mix up the owner root objectid and
the file tree objectid.

Fixes: b0d360b541 ("btrfs-progs: check: introduce function to check data backref in extent tree")
Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2018-03-30 22:15:53 +02:00
..
main.c btrfs-progs: free-space-cache: Enhance free space cache free space check 2018-03-30 22:15:53 +02:00
mode-common.c btrfs-progs: check: rename files after moving code 2018-02-02 16:01:59 +01:00
mode-common.h btrfs-progs: check: rename files after moving code 2018-02-02 16:01:59 +01:00
mode-lowmem.c btrfs-progs: check/lowmem: Fix false alert of data extent backref lost for snapshot 2018-03-30 22:15:53 +02:00
mode-lowmem.h btrfs-progs: check: rename files after moving code 2018-02-02 16:01:59 +01:00
mode-original.h btrfs-progs: check: rename files after moving code 2018-02-02 16:01:59 +01:00