btrfs: fix lost error return in btrfs_find_orphan_roots()

If the call to btrfs_get_fs_root() returns an error different from -ENOENT
we break out of the loop and then return 0, losing the error. Fix this
by returning the error instead of breaking from the loop.

Reported-by: Chris Mason <clm@meta.com>
Link: https://lore.kernel.org/linux-btrfs/20260208185321.1128472-1-clm@meta.com/
Fixes: 8670a25ecb ("btrfs: use single return variable in btrfs_find_orphan_roots()")
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Filipe Manana 2026-02-08 19:48:14 +00:00 committed by David Sterba
parent 29e525665a
commit 7b54e08f2e

View file

@ -257,7 +257,7 @@ int btrfs_find_orphan_roots(struct btrfs_fs_info *fs_info)
root = btrfs_get_fs_root(fs_info, root_objectid, false);
ret = PTR_ERR_OR_ZERO(root);
if (ret && ret != -ENOENT) {
break;
return ret;
} else if (ret == -ENOENT) {
struct btrfs_trans_handle *trans;