• Qu Wenruo's avatar
    btrfs: ignore incorrect btrfs_file_extent_item::ram_bytes · 88e2e6d7
    Qu Wenruo authored
    [HICCUP]
    Kernels can create file extent items with incorrect ram_bytes like this:
    
    	item 6 key (257 EXTENT_DATA 0) itemoff 15816 itemsize 53
    		generation 7 type 1 (regular)
    		extent data disk byte 13631488 nr 32768
    		extent data offset 0 nr 4096 ram 4096
    		extent compression 0 (none)
    
    Thankfully kernel can handle them properly, as in that case ram_bytes is
    not utilized at all.
    
    [ENHANCEMENT]
    Since the hiccup is not going to cause any data-loss and is only a minor
    violation of on-disk format, here we only need to ignore the incorrect
    ram_bytes value, and use the correct one from
    btrfs_file_extent_item::disk_num_bytes.
    Reviewed-by: default avatarFilipe Manana <fdmanana@suse.com>
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    88e2e6d7
file-item.c 37.2 KB