On Mon, Mar 28, 2022 at 03:41:47PM -0400, Sasha Levin wrote: > From: Omar Sandoval <osandov@xxxxxx> > > [ Upstream commit e331f6b19f8adde2307588bb325ae5de78617c20 ] > > btrfs_csum_one_bio() loops over each filesystem block in the bio while > keeping a cursor of its current logical position in the file in order to > look up the ordered extent to add the checksums to. However, this > doesn't make much sense for compressed extents, as a sector on disk does > not correspond to a sector of decompressed file data. It happens to work > because: > > 1) the compressed bio always covers one ordered extent > 2) the size of the bio is always less than the size of the ordered > extent > > However, the second point will not always be true for encoded writes. > > Let's add a boolean parameter to btrfs_csum_one_bio() to indicate that > it can assume that the bio only covers one ordered extent. Since we're > already changing the signature, let's get rid of the contig parameter > and make it implied by the offset parameter, similar to the change we > recently made to btrfs_lookup_bio_sums(). Additionally, let's rename > nr_sectors to blockcount to make it clear that it's the number of > filesystem blocks, not the number of 512-byte sectors. > > Reviewed-by: Josef Bacik <josef@xxxxxxxxxxxxxx> > Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx> > Signed-off-by: Omar Sandoval <osandov@xxxxxx> > Signed-off-by: David Sterba <dsterba@xxxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > --- > fs/btrfs/compression.c | 2 +- > fs/btrfs/ctree.h | 2 +- > fs/btrfs/file-item.c | 37 +++++++++++++++++-------------------- > fs/btrfs/inode.c | 8 ++++---- > 4 files changed, 23 insertions(+), 26 deletions(-) Hi, Sasha, This patch doesn't fix a real bug, so it should be dropped from both 5.16 and 5.17. Thanks!