+++ /dev/null
-From 92fb94b69c6accf1e49fff699640fa0ce03dc910 Mon Sep 17 00:00:00 2001
-From: Josef Bacik <josef@toxicpanda.com>
-Date: Wed, 2 Aug 2023 09:20:24 -0400
-Subject: btrfs: set cache_block_group_error if we find an error
-
-From: Josef Bacik <josef@toxicpanda.com>
-
-commit 92fb94b69c6accf1e49fff699640fa0ce03dc910 upstream.
-
-We set cache_block_group_error if btrfs_cache_block_group() returns an
-error, this is because we could end up not finding space to allocate and
-mistakenly return -ENOSPC, and which could then abort the transaction
-with the incorrect errno, and in the case of ENOSPC result in a
-WARN_ON() that will trip up tests like generic/475.
-
-However there's the case where multiple threads can be racing, one
-thread gets the proper error, and the other thread doesn't actually call
-btrfs_cache_block_group(), it instead sees ->cached ==
-BTRFS_CACHE_ERROR. Again the result is the same, we fail to allocate
-our space and return -ENOSPC. Instead we need to set
-cache_block_group_error to -EIO in this case to make sure that if we do
-not make our allocation we get the appropriate error returned back to
-the caller.
-
-CC: stable@vger.kernel.org # 4.14+
-Signed-off-by: Josef Bacik <josef@toxicpanda.com>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- fs/btrfs/extent-tree.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/fs/btrfs/extent-tree.c
-+++ b/fs/btrfs/extent-tree.c
-@@ -7724,8 +7724,11 @@ have_block_group:
- ret = 0;
- }
-
-- if (unlikely(block_group->cached == BTRFS_CACHE_ERROR))
-+ if (unlikely(block_group->cached == BTRFS_CACHE_ERROR)) {
-+ if (!cache_block_group_error)
-+ cache_block_group_error = -EIO;
- goto loop;
-+ }
-
- /*
- * Ok we want to try and use the cluster allocator, so
drivers-net-prevent-tun_build_skb-to-exceed-the-packet-size-limit.patch
ib-hfi1-fix-possible-panic-during-hotplug-remove.patch
btrfs-don-t-stop-integrity-writeback-too-early.patch
-btrfs-set-cache_block_group_error-if-we-find-an-error.patch
+++ /dev/null
-From 92fb94b69c6accf1e49fff699640fa0ce03dc910 Mon Sep 17 00:00:00 2001
-From: Josef Bacik <josef@toxicpanda.com>
-Date: Wed, 2 Aug 2023 09:20:24 -0400
-Subject: btrfs: set cache_block_group_error if we find an error
-
-From: Josef Bacik <josef@toxicpanda.com>
-
-commit 92fb94b69c6accf1e49fff699640fa0ce03dc910 upstream.
-
-We set cache_block_group_error if btrfs_cache_block_group() returns an
-error, this is because we could end up not finding space to allocate and
-mistakenly return -ENOSPC, and which could then abort the transaction
-with the incorrect errno, and in the case of ENOSPC result in a
-WARN_ON() that will trip up tests like generic/475.
-
-However there's the case where multiple threads can be racing, one
-thread gets the proper error, and the other thread doesn't actually call
-btrfs_cache_block_group(), it instead sees ->cached ==
-BTRFS_CACHE_ERROR. Again the result is the same, we fail to allocate
-our space and return -ENOSPC. Instead we need to set
-cache_block_group_error to -EIO in this case to make sure that if we do
-not make our allocation we get the appropriate error returned back to
-the caller.
-
-CC: stable@vger.kernel.org # 4.14+
-Signed-off-by: Josef Bacik <josef@toxicpanda.com>
-Signed-off-by: David Sterba <dsterba@suse.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- fs/btrfs/extent-tree.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/fs/btrfs/extent-tree.c
-+++ b/fs/btrfs/extent-tree.c
-@@ -7392,8 +7392,11 @@ have_block_group:
- ret = 0;
- }
-
-- if (unlikely(block_group->cached == BTRFS_CACHE_ERROR))
-+ if (unlikely(block_group->cached == BTRFS_CACHE_ERROR)) {
-+ if (!cache_block_group_error)
-+ cache_block_group_error = -EIO;
- goto loop;
-+ }
-
- /*
- * Ok we want to try and use the cluster allocator, so
wifi-cfg80211-fix-sband-iftype-data-lookup-for-ap_vlan.patch
ibmvnic-handle-dma-unmapping-of-login-buffs-in-release-functions.patch
btrfs-don-t-stop-integrity-writeback-too-early.patch
-btrfs-set-cache_block_group_error-if-we-find-an-error.patch