2017-08-14 11:14:30

by SF Markus Elfring

[permalink] [raw]
Subject: [PATCH 0/2] zpool: Adjustments for zpool_create_pool()

From: Markus Elfring <[email protected]>
Date: Mon, 14 Aug 2017 13:12:34 +0200

Two update suggestions were taken into account
from static source code analysis.

Markus Elfring (2):
Delete an error message for a failed memory allocation
Use common error handling code

mm/zpool.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)

--
2.14.0


2017-08-14 11:15:40

by SF Markus Elfring

[permalink] [raw]
Subject: [PATCH 1/2] zpool: Delete an error message for a failed memory allocation in zpool_create_pool()

From: Markus Elfring <[email protected]>
Date: Mon, 14 Aug 2017 12:57:16 +0200

Omit an extra message for a memory allocation failure in this function.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
---
mm/zpool.c | 1 -
1 file changed, 1 deletion(-)

diff --git a/mm/zpool.c b/mm/zpool.c
index fd3ff719c32c..fe1943f7d844 100644
--- a/mm/zpool.c
+++ b/mm/zpool.c
@@ -172,7 +172,6 @@ struct zpool *zpool_create_pool(const char *type, const char *name, gfp_t gfp,

zpool = kmalloc(sizeof(*zpool), gfp);
if (!zpool) {
- pr_err("couldn't create zpool - out of memory\n");
zpool_put_driver(driver);
return NULL;
}
--
2.14.0

2017-08-14 11:17:04

by SF Markus Elfring

[permalink] [raw]
Subject: [PATCH 2/2] zpool: Use common error handling code in zpool_create_pool()

From: Markus Elfring <[email protected]>
Date: Mon, 14 Aug 2017 13:04:33 +0200

Add a jump target so that a bit of exception handling can be better reused
in this function.

Signed-off-by: Markus Elfring <[email protected]>
---
mm/zpool.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/mm/zpool.c b/mm/zpool.c
index fe1943f7d844..e4634edef86d 100644
--- a/mm/zpool.c
+++ b/mm/zpool.c
@@ -171,10 +171,8 @@ struct zpool *zpool_create_pool(const char *type, const char *name, gfp_t gfp,
}

zpool = kmalloc(sizeof(*zpool), gfp);
- if (!zpool) {
- zpool_put_driver(driver);
- return NULL;
- }
+ if (!zpool)
+ goto put_driver;

zpool->driver = driver;
zpool->pool = driver->create(name, gfp, ops, zpool);
@@ -182,8 +180,9 @@ struct zpool *zpool_create_pool(const char *type, const char *name, gfp_t gfp,

if (!zpool->pool) {
pr_err("couldn't create %s pool\n", type);
- zpool_put_driver(driver);
kfree(zpool);
+put_driver:
+ zpool_put_driver(driver);
return NULL;
}

--
2.14.0

2017-08-16 11:19:55

by Dan Streetman

[permalink] [raw]
Subject: Re: [PATCH 1/2] zpool: Delete an error message for a failed memory allocation in zpool_create_pool()

On Mon, Aug 14, 2017 at 7:15 AM, SF Markus Elfring
<[email protected]> wrote:
> From: Markus Elfring <[email protected]>
> Date: Mon, 14 Aug 2017 12:57:16 +0200
>
> Omit an extra message for a memory allocation failure in this function.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <[email protected]>

Acked-by: Dan Streetman <[email protected]>

> ---
> mm/zpool.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/mm/zpool.c b/mm/zpool.c
> index fd3ff719c32c..fe1943f7d844 100644
> --- a/mm/zpool.c
> +++ b/mm/zpool.c
> @@ -172,7 +172,6 @@ struct zpool *zpool_create_pool(const char *type, const char *name, gfp_t gfp,
>
> zpool = kmalloc(sizeof(*zpool), gfp);
> if (!zpool) {
> - pr_err("couldn't create zpool - out of memory\n");
> zpool_put_driver(driver);
> return NULL;
> }
> --
> 2.14.0
>

2017-08-16 11:20:26

by Dan Streetman

[permalink] [raw]
Subject: Re: [PATCH 2/2] zpool: Use common error handling code in zpool_create_pool()

On Mon, Aug 14, 2017 at 7:16 AM, SF Markus Elfring
<[email protected]> wrote:
> From: Markus Elfring <[email protected]>
> Date: Mon, 14 Aug 2017 13:04:33 +0200
>
> Add a jump target so that a bit of exception handling can be better reused
> in this function.
>
> Signed-off-by: Markus Elfring <[email protected]>

Acked-by: Dan Streetman <[email protected]>

> ---
> mm/zpool.c | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/mm/zpool.c b/mm/zpool.c
> index fe1943f7d844..e4634edef86d 100644
> --- a/mm/zpool.c
> +++ b/mm/zpool.c
> @@ -171,10 +171,8 @@ struct zpool *zpool_create_pool(const char *type, const char *name, gfp_t gfp,
> }
>
> zpool = kmalloc(sizeof(*zpool), gfp);
> - if (!zpool) {
> - zpool_put_driver(driver);
> - return NULL;
> - }
> + if (!zpool)
> + goto put_driver;
>
> zpool->driver = driver;
> zpool->pool = driver->create(name, gfp, ops, zpool);
> @@ -182,8 +180,9 @@ struct zpool *zpool_create_pool(const char *type, const char *name, gfp_t gfp,
>
> if (!zpool->pool) {
> pr_err("couldn't create %s pool\n", type);
> - zpool_put_driver(driver);
> kfree(zpool);
> +put_driver:
> + zpool_put_driver(driver);
> return NULL;
> }
>
> --
> 2.14.0
>