fs/xfs/xfs_mru_cache.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-)
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 10 Jun 2025 14:50:07 +0200
Simplify error handling in this function implementation.
* Delete unnecessary pointer checks and variable assignments.
* Omit a redundant function call.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
fs/xfs/xfs_mru_cache.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/fs/xfs/xfs_mru_cache.c b/fs/xfs/xfs_mru_cache.c
index 08443ceec329..2ed679a52e41 100644
--- a/fs/xfs/xfs_mru_cache.c
+++ b/fs/xfs/xfs_mru_cache.c
@@ -320,7 +320,7 @@ xfs_mru_cache_create(
xfs_mru_cache_free_func_t free_func)
{
struct xfs_mru_cache *mru = NULL;
- int err = 0, grp;
+ int grp;
unsigned int grp_time;
if (mrup)
@@ -341,8 +341,8 @@ xfs_mru_cache_create(
mru->lists = kzalloc(mru->grp_count * sizeof(*mru->lists),
GFP_KERNEL | __GFP_NOFAIL);
if (!mru->lists) {
- err = -ENOMEM;
- goto exit;
+ kfree(mru);
+ return -ENOMEM;
}
for (grp = 0; grp < mru->grp_count; grp++)
@@ -361,14 +361,7 @@ xfs_mru_cache_create(
mru->free_func = free_func;
mru->data = data;
*mrup = mru;
-
-exit:
- if (err && mru && mru->lists)
- kfree(mru->lists);
- if (err && mru)
- kfree(mru);
-
- return err;
+ return 0;
}
/*
--
2.49.0
On Tue, 10 Jun 2025 15:00:27 +0200, Markus Elfring wrote:
> Simplify error handling in this function implementation.
>
> * Delete unnecessary pointer checks and variable assignments.
>
> * Omit a redundant function call.
>
>
> [...]
Applied to for-next, thanks!
[1/1] xfs: Improve error handling in xfs_mru_cache_create()
commit: 19fa6e493a933c095f164230d3393d504216e052
Best regards,
--
Carlos Maiolino <cem@kernel.org>
On Tue, Jun 10, 2025 at 03:00:27PM +0200, Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 10 Jun 2025 14:50:07 +0200
>
> Simplify error handling in this function implementation.
>
> * Delete unnecessary pointer checks and variable assignments.
>
> * Omit a redundant function call.
>
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Looks ok,
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> fs/xfs/xfs_mru_cache.c | 15 ++++-----------
> 1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/fs/xfs/xfs_mru_cache.c b/fs/xfs/xfs_mru_cache.c
> index 08443ceec329..2ed679a52e41 100644
> --- a/fs/xfs/xfs_mru_cache.c
> +++ b/fs/xfs/xfs_mru_cache.c
> @@ -320,7 +320,7 @@ xfs_mru_cache_create(
> xfs_mru_cache_free_func_t free_func)
> {
> struct xfs_mru_cache *mru = NULL;
> - int err = 0, grp;
> + int grp;
> unsigned int grp_time;
>
> if (mrup)
> @@ -341,8 +341,8 @@ xfs_mru_cache_create(
> mru->lists = kzalloc(mru->grp_count * sizeof(*mru->lists),
> GFP_KERNEL | __GFP_NOFAIL);
> if (!mru->lists) {
> - err = -ENOMEM;
> - goto exit;
> + kfree(mru);
> + return -ENOMEM;
> }
>
> for (grp = 0; grp < mru->grp_count; grp++)
> @@ -361,14 +361,7 @@ xfs_mru_cache_create(
> mru->free_func = free_func;
> mru->data = data;
> *mrup = mru;
> -
> -exit:
> - if (err && mru && mru->lists)
> - kfree(mru->lists);
> - if (err && mru)
> - kfree(mru);
> -
> - return err;
> + return 0;
> }
>
> /*
> --
> 2.49.0
>
>
© 2016 - 2026 Red Hat, Inc.