On Sun, Nov 24, 2024 at 07:38:44AM -0500, Sasha Levin wrote: > From: Qu Wenruo <wqu@xxxxxxxx> > > [ Upstream commit f6ebedb09bb276256e084196e2322562dc4aac10 ] > > Inside zlib_compress_folios(), each time we switch the input page cache, > the @start is increased by PAGE_SIZE. > > But for the incoming compression support for sector size < page size > (previously we support compression only when the range is fully page > aligned), this is not going to handle the following case: > > 0 32K 64K 96K > | |///////////||///////////| > > @start has the initial value 32K, indicating the start filepos of the > to-be-compressed range. > > And when grabbing the first page as input, we always call "start += > PAGE_SIZE;". > > But since @start is starting at 32K, it will be increased by 64K, > resulting it to be 96K for the next range, causing incorrect input range > and corruption for the future subpage compression. > > Fix it by only increase @start by the input size. > > Signed-off-by: Qu Wenruo <wqu@xxxxxxxx> > Signed-off-by: David Sterba <dsterba@xxxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> Please drop this patch from stable, it's preparatory work and has otherwise no effect.