Message ID | 20210802143206.bun3t2chwm7bghel@fiona |
---|---|
State | New |
Headers | show |
Series | btrfs: mark compressed range uptodate only if all bio succeed | expand |
On Mon, Aug 02, 2021 at 09:32:06AM -0500, Goldwyn Rodrigues wrote: >For: v4.19 >Git-commit: 240246f6b913b0c23733cfd2def1d283f8cc9bbe > >In compression write endio sequence, the range which the compressed_bio >writes is marked as uptodate if the last bio of the compressed (sub)bios >is completed successfully. There could be previous bio which may >have failed which is recorded in cb->errors. > >Set the writeback range as uptodate only if cb->errors is zero, as opposed >to checking only the last bio's status. > >Backporting notes: in all versions up to 4.4 the last argument is always >replaced by "!cb->errors". > >Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com> >Reviewed-by: David Sterba <dsterba@suse.com> >Signed-off-by: David Sterba <dsterba@suse.com> I've queued up this and the other backports, thanks!
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index c71e534ca7ef..919c033b9e31 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -270,8 +270,7 @@ static void end_compressed_bio_write(struct bio *bio) cb->start, cb->start + cb->len - 1, NULL, - bio->bi_status ? - BLK_STS_OK : BLK_STS_NOTSUPP); + !cb->errors); cb->compressed_pages[0]->mapping = NULL; end_compressed_writeback(inode, cb);