[PATCH] btrfs: make error handling more appropriate in btrfs_delayed_ref_init()

From: Yangtao Li
Date: Thu Apr 10 2025 - 07:19:39 EST


1. Remove unnecessary goto
2. Make the execution logic of the function jumped by goto more appropriate

Signed-off-by: Yangtao Li <frank.li@xxxxxxxx>
---
fs/btrfs/delayed-ref.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
index 98c5b61dabe8..e984f1761afa 100644
--- a/fs/btrfs/delayed-ref.c
+++ b/fs/btrfs/delayed-ref.c
@@ -1339,11 +1339,11 @@ int __init btrfs_delayed_ref_init(void)
{
btrfs_delayed_ref_head_cachep = KMEM_CACHE(btrfs_delayed_ref_head, 0);
if (!btrfs_delayed_ref_head_cachep)
- goto fail;
+ return -ENOMEM;

btrfs_delayed_ref_node_cachep = KMEM_CACHE(btrfs_delayed_ref_node, 0);
if (!btrfs_delayed_ref_node_cachep)
- goto fail;
+ goto out;

btrfs_delayed_extent_op_cachep = KMEM_CACHE(btrfs_delayed_extent_op, 0);
if (!btrfs_delayed_extent_op_cachep)
@@ -1351,6 +1351,8 @@ int __init btrfs_delayed_ref_init(void)

return 0;
fail:
- btrfs_delayed_ref_exit();
+ kmem_cache_destroy(btrfs_delayed_ref_node_cachep);
+out:
+ kmem_cache_destroy(btrfs_delayed_ref_head_cachep);
return -ENOMEM;
}
--
2.39.0