btrfs: make validate_extent_map() catch ram_bytes mismatch
authorQu Wenruo <wqu@suse.com>
Tue, 25 Jun 2024 04:04:33 +0000 (13:34 +0930)
committerDavid Sterba <dsterba@suse.com>
Thu, 11 Jul 2024 13:33:29 +0000 (15:33 +0200)
commit1b87d26addd811ac7033720d21def3c4a3ef9fe3
tree1fd74e9b0ba3166e5168786c9d3effc1aea13085
parent88e2e6d72423912f62b3e44aeeb967d798a2c2f5
btrfs: make validate_extent_map() catch ram_bytes mismatch

Previously validate_extent_map() is only to catch bugs related to
extent_map member cleanups.

But with recent btrfs-check enhancement to catch ram_bytes mismatch with
disk_num_bytes, it would be much better to catch such extent maps
earlier.

So this patch adds extra ram_bytes validation for extent maps.

Please note that, older filesystems with such mismatch won't trigger this error:

- extent_map::ram_bytes is already fixed
  Previous patch has already fixed the ram_bytes for affected file
  extents.

So this enhanced sanity check should not affect end users.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_map.c