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

From: SF Markus Elfring
Date: Mon Aug 14 2017 - 07:17:07 EST


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>
---
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