]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.19
authorSasha Levin <sashal@kernel.org>
Mon, 2 Aug 2021 22:03:24 +0000 (18:03 -0400)
committerSasha Levin <sashal@kernel.org>
Mon, 2 Aug 2021 22:03:24 +0000 (18:03 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.19/btrfs-mark-compressed-range-uptodate-only-if-all-bio.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/btrfs-mark-compressed-range-uptodate-only-if-all-bio.patch b/queue-4.19/btrfs-mark-compressed-range-uptodate-only-if-all-bio.patch
new file mode 100644 (file)
index 0000000..b32d7ca
--- /dev/null
@@ -0,0 +1,46 @@
+From 792ea230b1d6f4453604b105926e4ec7e56f736a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 2 Aug 2021 09:32:06 -0500
+Subject: btrfs: mark compressed range uptodate only if all bio succeed
+
+From: Goldwyn Rodrigues <rgoldwyn@suse.de>
+
+[ Upstream 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".
+
+CC: stable@vger.kernel.org # 4.4+
+Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
+Reviewed-by: David Sterba <dsterba@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/btrfs/compression.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+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);
+-- 
+2.30.2
+
index c7d14aa442ec21d00d11e9a436002e0a167b3db4..f4c57625b4ec3cb9680fe3d406914044e50bce65 100644 (file)
@@ -28,3 +28,4 @@ can-hi311x-fix-a-signedness-bug-in-hi3110_cmd.patch
 powerpc-pseries-fix-regression-while-building-external-modules.patch
 revert-perf-map-fix-dso-nsinfo-refcounting.patch
 i40e-add-additional-info-to-phy-type-error.patch
+btrfs-mark-compressed-range-uptodate-only-if-all-bio.patch