From 8bc612906f2f77279c159242d0413a8a44aec126 Mon Sep 17 00:00:00 2001 From: Filipe Manana Date: Tue, 16 Dec 2025 12:31:11 +0000 Subject: [PATCH] btrfs: don't call btrfs_handle_fs_error() after failure to join transaction In btrfs_find_orphan_roots() we don't need to call btrfs_handle_fs_error() if we fail to join a transaction. This is because we haven't done anything yet regarding the current root and previous iterations of the loop dealt with other roots, so there's nothing we need to undo. Instead log an error message and return the error to the caller, which will result either in a mount failure or remount failure (the only contexts it's called from). Reviewed-by: Qu Wenruo Reviewed-by: Johannes Thumshirn Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba --- fs/btrfs/root-tree.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/root-tree.c b/fs/btrfs/root-tree.c index 40f9bc9485e86..a6880ac5f0602 100644 --- a/fs/btrfs/root-tree.c +++ b/fs/btrfs/root-tree.c @@ -264,8 +264,9 @@ int btrfs_find_orphan_roots(struct btrfs_fs_info *fs_info) trans = btrfs_join_transaction(tree_root); if (IS_ERR(trans)) { ret = PTR_ERR(trans); - btrfs_handle_fs_error(fs_info, ret, - "Failed to start trans to delete orphan item"); + btrfs_err(fs_info, + "failed to join transaction to delete orphan item: %d", + ret); return ret; } ret = btrfs_del_orphan_item(trans, tree_root, root_objectid); -- 2.47.3