[PATCH 13/54] md/raid1: Return directly after a failed kzalloc() in setup_conf()

From: SF Markus Elfring
Date: Thu Oct 06 2016 - 05:11:36 EST


From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 4 Oct 2016 15:56:41 +0200

* Return directly after a call of the function "kzalloc" failed
at the beginning.

* Delete a repeated check for the local variable "conf"
which became unnecessary with this refactoring.

* Reorder two calls for the function "kfree" at the end.

Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
---
drivers/md/raid1.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 5969711..74346f5 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -2779,7 +2779,7 @@ static struct r1conf *setup_conf(struct mddev *mddev)

conf = kzalloc(sizeof(struct r1conf), GFP_KERNEL);
if (!conf)
- goto abort;
+ return ERR_PTR(-ENOMEM);

conf->mirrors = kcalloc(mddev->raid_disks * 2,
sizeof(*conf->mirrors),
@@ -2880,13 +2880,11 @@ static struct r1conf *setup_conf(struct mddev *mddev)
return conf;

abort:
- if (conf) {
- mempool_destroy(conf->r1bio_pool);
- kfree(conf->mirrors);
- safe_put_page(conf->tmppage);
- kfree(conf->poolinfo);
- kfree(conf);
- }
+ mempool_destroy(conf->r1bio_pool);
+ kfree(conf->poolinfo);
+ safe_put_page(conf->tmppage);
+ kfree(conf->mirrors);
+ kfree(conf);
return ERR_PTR(err);
}

--
2.10.1