From: Greg Kroah-Hartman Date: Sat, 12 Aug 2023 21:42:41 +0000 (+0200) Subject: drop btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch X-Git-Tag: v4.14.323~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bfdcaf8777326492ac4ab0a46c11049f05ee3161;p=thirdparty%2Fkernel%2Fstable-queue.git drop btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch --- diff --git a/queue-4.14/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch b/queue-4.14/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch deleted file mode 100644 index 88aab8f145a..00000000000 --- a/queue-4.14/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 5c25699871112853f231e52d51c576d5c759a020 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Mon, 24 Jul 2023 06:26:54 -0700 -Subject: btrfs: don't wait for writeback on clean pages in extent_write_cache_pages - -From: Christoph Hellwig - -commit 5c25699871112853f231e52d51c576d5c759a020 upstream. - -__extent_writepage could have started on more pages than the one it was -called for. This happens regularly for zoned file systems, and in theory -could happen for compressed I/O if the worker thread was executed very -quickly. For such pages extent_write_cache_pages waits for writeback -to complete before moving on to the next page, which is highly inefficient -as it blocks the flusher thread. - -Port over the PageDirty check that was added to write_cache_pages in -commit 515f4a037fb ("mm: write_cache_pages optimise page cleaning") to -fix this. - -CC: stable@vger.kernel.org # 4.14+ -Reviewed-by: Josef Bacik -Signed-off-by: Christoph Hellwig -Reviewed-by: David Sterba -Signed-off-by: David Sterba -Signed-off-by: Greg Kroah-Hartman ---- - fs/btrfs/extent_io.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -4004,6 +4004,12 @@ retry: - continue; - } - -+ if (!folio_test_dirty(folio)) { -+ /* Someone wrote it for us. */ -+ folio_unlock(folio); -+ continue; -+ } -+ - if (wbc->sync_mode != WB_SYNC_NONE) { - if (PageWriteback(page)) - flush_fn(data); diff --git a/queue-4.14/series b/queue-4.14/series index 2fe46df3115..cbd85184409 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -18,5 +18,4 @@ dccp-fix-data-race-around-dp-dccps_mss_cache.patch 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-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch btrfs-set-cache_block_group_error-if-we-find-an-error.patch diff --git a/queue-4.19/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch b/queue-4.19/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch deleted file mode 100644 index 3aab5bfd873..00000000000 --- a/queue-4.19/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 5c25699871112853f231e52d51c576d5c759a020 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Mon, 24 Jul 2023 06:26:54 -0700 -Subject: btrfs: don't wait for writeback on clean pages in extent_write_cache_pages - -From: Christoph Hellwig - -commit 5c25699871112853f231e52d51c576d5c759a020 upstream. - -__extent_writepage could have started on more pages than the one it was -called for. This happens regularly for zoned file systems, and in theory -could happen for compressed I/O if the worker thread was executed very -quickly. For such pages extent_write_cache_pages waits for writeback -to complete before moving on to the next page, which is highly inefficient -as it blocks the flusher thread. - -Port over the PageDirty check that was added to write_cache_pages in -commit 515f4a037fb ("mm: write_cache_pages optimise page cleaning") to -fix this. - -CC: stable@vger.kernel.org # 4.14+ -Reviewed-by: Josef Bacik -Signed-off-by: Christoph Hellwig -Reviewed-by: David Sterba -Signed-off-by: David Sterba -Signed-off-by: Greg Kroah-Hartman ---- - fs/btrfs/extent_io.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -4091,6 +4091,12 @@ retry: - continue; - } - -+ if (!folio_test_dirty(folio)) { -+ /* Someone wrote it for us. */ -+ folio_unlock(folio); -+ continue; -+ } -+ - if (wbc->sync_mode != WB_SYNC_NONE) { - if (PageWriteback(page)) { - ret = flush_write_bio(epd); diff --git a/queue-4.19/series b/queue-4.19/series index caac451ec8f..765f103fc49 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -23,5 +23,4 @@ ib-hfi1-fix-possible-panic-during-hotplug-remove.patch 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-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch btrfs-set-cache_block_group_error-if-we-find-an-error.patch diff --git a/queue-5.10/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch b/queue-5.10/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch deleted file mode 100644 index caa0a287f1d..00000000000 --- a/queue-5.10/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 5c25699871112853f231e52d51c576d5c759a020 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Mon, 24 Jul 2023 06:26:54 -0700 -Subject: btrfs: don't wait for writeback on clean pages in extent_write_cache_pages - -From: Christoph Hellwig - -commit 5c25699871112853f231e52d51c576d5c759a020 upstream. - -__extent_writepage could have started on more pages than the one it was -called for. This happens regularly for zoned file systems, and in theory -could happen for compressed I/O if the worker thread was executed very -quickly. For such pages extent_write_cache_pages waits for writeback -to complete before moving on to the next page, which is highly inefficient -as it blocks the flusher thread. - -Port over the PageDirty check that was added to write_cache_pages in -commit 515f4a037fb ("mm: write_cache_pages optimise page cleaning") to -fix this. - -CC: stable@vger.kernel.org # 4.14+ -Reviewed-by: Josef Bacik -Signed-off-by: Christoph Hellwig -Reviewed-by: David Sterba -Signed-off-by: David Sterba -Signed-off-by: Greg Kroah-Hartman ---- - fs/btrfs/extent_io.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -4201,6 +4201,12 @@ retry: - continue; - } - -+ if (!folio_test_dirty(folio)) { -+ /* Someone wrote it for us. */ -+ folio_unlock(folio); -+ continue; -+ } -+ - if (wbc->sync_mode != WB_SYNC_NONE) { - if (PageWriteback(page)) { - ret = flush_write_bio(epd); diff --git a/queue-5.10/series b/queue-5.10/series index 331beff2ce7..e71ffa8c6a8 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -54,5 +54,4 @@ ibmvnic-enforce-stronger-sanity-checks-on-login-response.patch ibmvnic-unmap-dma-login-rsp-buffer-on-send-login-fail.patch ibmvnic-handle-dma-unmapping-of-login-buffs-in-release-functions.patch btrfs-don-t-stop-integrity-writeback-too-early.patch -btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch btrfs-set-cache_block_group_error-if-we-find-an-error.patch diff --git a/queue-5.15/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch b/queue-5.15/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch deleted file mode 100644 index 7906f4ff3db..00000000000 --- a/queue-5.15/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 5c25699871112853f231e52d51c576d5c759a020 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Mon, 24 Jul 2023 06:26:54 -0700 -Subject: btrfs: don't wait for writeback on clean pages in extent_write_cache_pages - -From: Christoph Hellwig - -commit 5c25699871112853f231e52d51c576d5c759a020 upstream. - -__extent_writepage could have started on more pages than the one it was -called for. This happens regularly for zoned file systems, and in theory -could happen for compressed I/O if the worker thread was executed very -quickly. For such pages extent_write_cache_pages waits for writeback -to complete before moving on to the next page, which is highly inefficient -as it blocks the flusher thread. - -Port over the PageDirty check that was added to write_cache_pages in -commit 515f4a037fb ("mm: write_cache_pages optimise page cleaning") to -fix this. - -CC: stable@vger.kernel.org # 4.14+ -Reviewed-by: Josef Bacik -Signed-off-by: Christoph Hellwig -Reviewed-by: David Sterba -Signed-off-by: David Sterba -Signed-off-by: Greg Kroah-Hartman ---- - fs/btrfs/extent_io.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -5013,6 +5013,12 @@ retry: - continue; - } - -+ if (!folio_test_dirty(folio)) { -+ /* Someone wrote it for us. */ -+ folio_unlock(folio); -+ continue; -+ } -+ - if (wbc->sync_mode != WB_SYNC_NONE) { - if (PageWriteback(page)) { - ret = flush_write_bio(epd); diff --git a/queue-5.15/series b/queue-5.15/series index 8901771be32..eed005ddcdd 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -69,7 +69,6 @@ ibmvnic-enforce-stronger-sanity-checks-on-login-response.patch ibmvnic-unmap-dma-login-rsp-buffer-on-send-login-fail.patch ibmvnic-handle-dma-unmapping-of-login-buffs-in-release-functions.patch btrfs-don-t-stop-integrity-writeback-too-early.patch -btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch btrfs-exit-gracefully-if-reloc-roots-don-t-match.patch btrfs-reject-invalid-reloc-tree-root-keys-with-stack-dump.patch btrfs-set-cache_block_group_error-if-we-find-an-error.patch diff --git a/queue-5.4/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch b/queue-5.4/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch deleted file mode 100644 index 57dba92d785..00000000000 --- a/queue-5.4/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 5c25699871112853f231e52d51c576d5c759a020 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Mon, 24 Jul 2023 06:26:54 -0700 -Subject: btrfs: don't wait for writeback on clean pages in extent_write_cache_pages - -From: Christoph Hellwig - -commit 5c25699871112853f231e52d51c576d5c759a020 upstream. - -__extent_writepage could have started on more pages than the one it was -called for. This happens regularly for zoned file systems, and in theory -could happen for compressed I/O if the worker thread was executed very -quickly. For such pages extent_write_cache_pages waits for writeback -to complete before moving on to the next page, which is highly inefficient -as it blocks the flusher thread. - -Port over the PageDirty check that was added to write_cache_pages in -commit 515f4a037fb ("mm: write_cache_pages optimise page cleaning") to -fix this. - -CC: stable@vger.kernel.org # 4.14+ -Reviewed-by: Josef Bacik -Signed-off-by: Christoph Hellwig -Reviewed-by: David Sterba -Signed-off-by: David Sterba -Signed-off-by: Greg Kroah-Hartman ---- - fs/btrfs/extent_io.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -4191,6 +4191,12 @@ retry: - continue; - } - -+ if (!folio_test_dirty(folio)) { -+ /* Someone wrote it for us. */ -+ folio_unlock(folio); -+ continue; -+ } -+ - if (wbc->sync_mode != WB_SYNC_NONE) { - if (PageWriteback(page)) { - ret = flush_write_bio(epd); diff --git a/queue-5.4/series b/queue-5.4/series index 8a57a11cfc8..517256fbe70 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -27,5 +27,4 @@ dmaengine-mcf-edma-fix-a-potential-un-allocated-memory-access.patch net-mlx5-allow-0-for-total-host-vfs.patch ibmvnic-handle-dma-unmapping-of-login-buffs-in-release-functions.patch btrfs-don-t-stop-integrity-writeback-too-early.patch -btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch btrfs-set-cache_block_group_error-if-we-find-an-error.patch diff --git a/queue-6.1/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch b/queue-6.1/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch deleted file mode 100644 index d01497ec96d..00000000000 --- a/queue-6.1/btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 5c25699871112853f231e52d51c576d5c759a020 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Mon, 24 Jul 2023 06:26:54 -0700 -Subject: btrfs: don't wait for writeback on clean pages in extent_write_cache_pages - -From: Christoph Hellwig - -commit 5c25699871112853f231e52d51c576d5c759a020 upstream. - -__extent_writepage could have started on more pages than the one it was -called for. This happens regularly for zoned file systems, and in theory -could happen for compressed I/O if the worker thread was executed very -quickly. For such pages extent_write_cache_pages waits for writeback -to complete before moving on to the next page, which is highly inefficient -as it blocks the flusher thread. - -Port over the PageDirty check that was added to write_cache_pages in -commit 515f4a037fb ("mm: write_cache_pages optimise page cleaning") to -fix this. - -CC: stable@vger.kernel.org # 4.14+ -Reviewed-by: Josef Bacik -Signed-off-by: Christoph Hellwig -Reviewed-by: David Sterba -Signed-off-by: David Sterba -Signed-off-by: Greg Kroah-Hartman ---- - fs/btrfs/extent_io.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -3181,6 +3181,12 @@ retry: - continue; - } - -+ if (!folio_test_dirty(folio)) { -+ /* Someone wrote it for us. */ -+ folio_unlock(folio); -+ continue; -+ } -+ - if (wbc->sync_mode != WB_SYNC_NONE) { - if (PageWriteback(page)) - submit_write_bio(epd, 0); diff --git a/queue-6.1/series b/queue-6.1/series index d1dc129bc68..883eff5e5c9 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -127,7 +127,6 @@ gpio-ws16c48-fix-off-by-one-error-in-ws16c48-resource-region-extent.patch gpio-sim-mark-the-gpio-chip-as-a-one-that-can-sleep.patch btrfs-wait-for-actual-caching-progress-during-allocation.patch btrfs-don-t-stop-integrity-writeback-too-early.patch -btrfs-don-t-wait-for-writeback-on-clean-pages-in-extent_write_cache_pages.patch btrfs-properly-clear-end-of-the-unreserved-range-in-cow_file_range.patch btrfs-exit-gracefully-if-reloc-roots-don-t-match.patch btrfs-reject-invalid-reloc-tree-root-keys-with-stack-dump.patch