]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.19
authorSasha Levin <sashal@kernel.org>
Wed, 17 Apr 2024 17:16:45 +0000 (13:16 -0400)
committerSasha Levin <sashal@kernel.org>
Wed, 17 Apr 2024 17:16:45 +0000 (13:16 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.19/btrfs-record-delayed-inode-root-in-transaction.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/btrfs-record-delayed-inode-root-in-transaction.patch b/queue-4.19/btrfs-record-delayed-inode-root-in-transaction.patch
new file mode 100644 (file)
index 0000000..c912f57
--- /dev/null
@@ -0,0 +1,41 @@
+From 9ffab744e5bbe9ec636d8517d6ec930d0d89601a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 21 Mar 2024 10:14:24 -0700
+Subject: btrfs: record delayed inode root in transaction
+
+From: Boris Burkov <boris@bur.io>
+
+[ Upstream commit 71537e35c324ea6fbd68377a4f26bb93a831ae35 ]
+
+When running delayed inode updates, we do not record the inode's root in
+the transaction, but we do allocate PREALLOC and thus converted PERTRANS
+space for it. To be sure we free that PERTRANS meta rsv, we must ensure
+that we record the root in the transaction.
+
+Fixes: 4f5427ccce5d ("btrfs: delayed-inode: Use new qgroup meta rsv for delayed inode and item")
+CC: stable@vger.kernel.org # 6.1+
+Reviewed-by: Qu Wenruo <wqu@suse.com>
+Signed-off-by: Boris Burkov <boris@bur.io>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/btrfs/delayed-inode.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
+index 469a90b07d3f0..fec62782fc86c 100644
+--- a/fs/btrfs/delayed-inode.c
++++ b/fs/btrfs/delayed-inode.c
+@@ -1133,6 +1133,9 @@ __btrfs_commit_inode_delayed_items(struct btrfs_trans_handle *trans,
+       if (ret)
+               return ret;
++      ret = btrfs_record_root_in_trans(trans, node->root);
++      if (ret)
++              return ret;
+       ret = btrfs_update_delayed_inode(trans, node->root, path, node);
+       return ret;
+ }
+-- 
+2.43.0
+
index 838c58ec55388df5bb91f756506dbe572b87e25d..d6f1f457721f02378337b34e9b9d4cf7f6cb2e48 100644 (file)
@@ -10,3 +10,4 @@ tracing-hide-unused-ftrace_event_id_fops.patch
 vhost-add-smp_rmb-in-vhost_vq_avail_empty.patch
 selftests-timers-fix-abs-warning-in-posix_timers-test.patch
 x86-apic-force-native_apic_mem_read-to-use-the-mov-instruction.patch
+btrfs-record-delayed-inode-root-in-transaction.patch