]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: don't call btrfs_handle_fs_error() after failure to delete orphan item
authorFilipe Manana <fdmanana@suse.com>
Tue, 16 Dec 2025 12:41:16 +0000 (12:41 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Feb 2026 06:49:11 +0000 (07:49 +0100)
In btrfs_find_orphan_roots() we don't need to call btrfs_handle_fs_error()
if we fail to delete the orphan item for the current root. 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 <wqu@suse.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/root-tree.c

index a6880ac5f0602c59941b03e64c7ba36c33a86e62..37a4173c0a0b746290e9b6f359acbf1c2771514e 100644 (file)
@@ -272,8 +272,8 @@ int btrfs_find_orphan_roots(struct btrfs_fs_info *fs_info)
                        ret = btrfs_del_orphan_item(trans, tree_root, root_objectid);
                        btrfs_end_transaction(trans);
                        if (ret) {
-                               btrfs_handle_fs_error(fs_info, ret,
-                                           "Failed to delete root orphan item");
+                               btrfs_err(fs_info,
+                                 "failed to delete root orphan item: %d", ret);
                                return ret;
                        }
                        continue;