btrfs-progs: Get rid of the confusing btrfs_file_extent_inline_len()
commit3c042605db2238c09f56c197a58624d4e10c5d2e
authorQu Wenruo <wqu@suse.com>
Wed, 6 Jun 2018 07:27:13 +0000 (6 15:27 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 6 Aug 2018 13:00:34 +0000 (6 15:00 +0200)
tree16d840e1e8f861cb26e369a0e76b78e2ba599a53
parent90b677a2d7e6b14e3047b5ac8625269378c1198f
btrfs-progs: Get rid of the confusing btrfs_file_extent_inline_len()

[BUG]
If one uncompressed inline extent has incorrect ram_bytes, neither btrfs
check nor dump-tree could detect such corruption.

[CAUSE]
Every caller tries to read inline extent ram_bytes is using
btrfs_file_extent_inline_len(), other than directly calling
btrfs_file_extent_ram_bytes().

For compressed extent, it's just calling btrfs_file_extent_ram_bytes().
However for uncompressed extent, it falls back to
btrfs_file_extent_inline_item_len(), makes us unable to detect anything
wrong in ram_bytes.

[FIX]
Just get rid of such confusing btrfs_file_extent_inline_len() function.

Reported-by: Steve Leung <sjleung@shaw.ca>
Tested-by: Steve Leung <sjleung@shaw.ca>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
check/main.c
check/mode-lowmem.c
cmds-restore.c
ctree.h
file.c
print-tree.c