summaryrefslogtreecommitdiffstats
path: root/include/trace/events/btrfs.h
diff options
context:
space:
mode:
authorQu Wenruo2018-06-06 09:41:49 +0200
committerDavid Sterba2018-08-06 13:12:38 +0200
commite41ca5897489b1c18af75ff0cc8f5c80260b3281 (patch)
treedc20051c4be3bb6f4b47bb1823364ae345d75809 /include/trace/events/btrfs.h
parentbtrfs: Deduplicate extent_buffer init code (diff)
downloadkernel-qcow2-linux-e41ca5897489b1c18af75ff0cc8f5c80260b3281.tar.gz
kernel-qcow2-linux-e41ca5897489b1c18af75ff0cc8f5c80260b3281.tar.xz
kernel-qcow2-linux-e41ca5897489b1c18af75ff0cc8f5c80260b3281.zip
btrfs: Get rid of the confusing btrfs_file_extent_inline_len
We used to call btrfs_file_extent_inline_len() to get the uncompressed data size of an inlined extent. However this function is hiding evil, for compressed extent, it has no choice but to directly read out ram_bytes from btrfs_file_extent_item. While for uncompressed extent, it uses item size to calculate the real data size, and ignoring ram_bytes completely. In fact, for corrupted ram_bytes, due to above behavior kernel btrfs_print_leaf() can't even print correct ram_bytes to expose the bug. Since we have the tree-checker to verify all EXTENT_DATA, such mismatch can be detected pretty easily, thus we can trust ram_bytes without the evil btrfs_file_extent_inline_len(). Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'include/trace/events/btrfs.h')
-rw-r--r--include/trace/events/btrfs.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h
index 7057cc99d267..b401c4e36394 100644
--- a/include/trace/events/btrfs.h
+++ b/include/trace/events/btrfs.h
@@ -374,7 +374,7 @@ DECLARE_EVENT_CLASS(
__entry->extent_type = btrfs_file_extent_type(l, fi);
__entry->compression = btrfs_file_extent_compression(l, fi);
__entry->extent_start = start;
- __entry->extent_end = (start + btrfs_file_extent_inline_len(l, slot, fi));
+ __entry->extent_end = (start + btrfs_file_extent_ram_bytes(l, fi));
),
TP_printk_btrfs(