
27 Apr
2021
27 Apr
'21
6:46 p.m.
On Sat, Apr 17, 2021 at 08:52:13PM +0800, Qu Wenruo wrote:
There are some cases where decompressed sectors can have padding zeros.
In kernel code, we have lines to address such situation:
/* * btrfs_getblock is doing a zero on the tail of the page too, * but this will cover anything missing from the decompressed * data. */ if (bytes < destlen) memset(kaddr+bytes, 0, destlen-bytes); kunmap_local(kaddr);
But not in U-boot code, thus we have some reports of U-boot failed to read compressed files in btrfs.
Fix it by doing the same thing of the kernel, for both inline and regular compressed extents.
Reported-by: Matwey Kornilov matwey.kornilov@gmail.com Link: https://bugzilla.suse.com/show_bug.cgi?id=1183717 Fixes: a26a6bedafcf ("fs: btrfs: Introduce btrfs_read_extent_inline() and btrfs_read_extent_reg()") Signed-off-by: Qu Wenruo wqu@suse.com
Applied to u-boot/master, thanks!
--
Tom