diff mbox series

[3/3] btrfs: abort transaction if we fail to update the delayed inode

Message ID 369d25c766284041a89250a8f2e34361be689cef.1621629737.git.josef@toxicpanda.com (mailing list archive)
State New, archived
Headers show
Series Delayed inode error handling fixes | expand

Commit Message

Josef Bacik May 21, 2021, 8:44 p.m. UTC
If we fail to update the delayed inode we need to abort the transaction,
because we could leave an inode with the improper counts or some other
such corruption behind.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 fs/btrfs/delayed-inode.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
index 263f3ab3009c..6ce6d8a839d7 100644
--- a/fs/btrfs/delayed-inode.c
+++ b/fs/btrfs/delayed-inode.c
@@ -1052,6 +1052,9 @@  static int __btrfs_update_delayed_inode(struct btrfs_trans_handle *trans,
 	btrfs_delayed_inode_release_metadata(fs_info, node, (ret < 0));
 	btrfs_release_delayed_inode(node);
 
+	if (ret && ret != -ENOENT)
+		btrfs_abort_transaction(trans, ret);
+
 	return ret;
 
 search: