Re: [PATCH 2/2] zpool: Use common error handling code in zpool_create_pool()
From: Dan Streetman
Date: Wed Aug 16 2017 - 07:20:30 EST
On Mon, Aug 14, 2017 at 7:16 AM, SF Markus Elfring
<elfring@xxxxxxxxxxxxxxxxxxxxx> wrote:
> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> 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 <elfring@xxxxxxxxxxxxxxxxxxxxx>
Acked-by: Dan Streetman <ddstreet@xxxxxxxx>
> ---
> 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
>