]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
btrfs for 4.14
authorSasha Levin <sashal@kernel.org>
Mon, 3 Dec 2018 17:05:03 +0000 (12:05 -0500)
committerSasha Levin <sashal@kernel.org>
Mon, 3 Dec 2018 17:05:03 +0000 (12:05 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.14/btrfs-release-metadata-before-running-delayed-refs.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/btrfs-release-metadata-before-running-delayed-refs.patch b/queue-4.14/btrfs-release-metadata-before-running-delayed-refs.patch
new file mode 100644 (file)
index 0000000..4652ac8
--- /dev/null
@@ -0,0 +1,47 @@
+From 99add067afae8f036847f35305b73d6597af721f Mon Sep 17 00:00:00 2001
+From: Josef Bacik <josef@toxicpanda.com>
+Date: Mon, 3 Dec 2018 13:06:57 +0200
+Subject: btrfs: release metadata before running delayed refs
+
+We want to release the unused reservation we have since it refills the
+delayed refs reserve, which will make everything go smoother when
+running the delayed refs if we're short on our reservation.
+
+CC: stable@vger.kernel.org # 4.4+
+Reviewed-by: Omar Sandoval <osandov@fb.com>
+Reviewed-by: Liu Bo <bo.liu@linux.alibaba.com>
+Reviewed-by: Nikolay Borisov <nborisov@suse.com>
+Signed-off-by: Josef Bacik <josef@toxicpanda.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/btrfs/transaction.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
+index f74005ca8f08..73c1fbca0c35 100644
+--- a/fs/btrfs/transaction.c
++++ b/fs/btrfs/transaction.c
+@@ -1955,6 +1955,9 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans)
+               return ret;
+       }
++      btrfs_trans_release_metadata(trans, fs_info);
++      trans->block_rsv = NULL;
++
+       /* make a pass through all the delayed refs we have so far
+        * any runnings procs may add more while we are here
+        */
+@@ -1964,9 +1967,6 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans)
+               return ret;
+       }
+-      btrfs_trans_release_metadata(trans, fs_info);
+-      trans->block_rsv = NULL;
+-
+       cur_trans = trans->transaction;
+       /*
+-- 
+2.17.1
+
index f51bca2deeffd2a45a135096076798c825351138..858d4fe40e0fc71351e386ae639d297bceacf453 100644 (file)
@@ -132,3 +132,4 @@ ext2-fix-potential-use-after-free.patch
 arm-dts-rockchip-remove-0-from-the-veyron-memory-node.patch
 dmaengine-at_hdmac-fix-memory-leak-in-at_dma_xlate.patch
 dmaengine-at_hdmac-fix-module-unloading.patch
+btrfs-release-metadata-before-running-delayed-refs.patch