Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966898AbcJFI60 (ORCPT ); Thu, 6 Oct 2016 04:58:26 -0400 Received: from mout.web.de ([212.227.15.14]:58242 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966391AbcJFI6W (ORCPT ); Thu, 6 Oct 2016 04:58:22 -0400 Subject: [PATCH 05/54] md/raid0: Move another variable assignment in create_strip_zones() To: linux-raid@vger.kernel.org, Christoph Hellwig , Guoqing Jiang , Jens Axboe , Mike Christie , Neil Brown , Shaohua Li , Tomasz Majchrzak References: <566ABCD9.1060404@users.sourceforge.net> <786843ef-4b6f-eb04-7326-2f6f5b408826@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: Date: Thu, 6 Oct 2016 10:57:44 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: <786843ef-4b6f-eb04-7326-2f6f5b408826@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:0c+VIjAA90d1vd4Zm32Oux/9y4to89jIFLTSrRRGU65XH8PybLi BnZdYqWoJ/DYjZLHVDAHzOLTCOaovPOaYKSYj9RInZgtDw9xNh55h0Az6riJsxZJFux3pZQ uTgXXVcz02tQu/dg1NAxswp1xCCKVHjJl54ic8np6q3L/Ztv2am+gBC6EAR9IcQusj5cbq1 RtzJLGFyVAOJUL6H7cRtw== X-UI-Out-Filterresults: notjunk:1;V01:K0:UfsEPp8koPs=:3+x7dLSqlYo1j0cHZE2EsL yvOJWIIRJKQbeCbvzpxjvOR7vITeol5cFBKL+MGVgsleBGKAVin4emr9nmh7zad5Pix6hu3v0 WexpDSyj1QyfwQCxVt1P0bDzvGAEnENdhLJV2Dr3swzpOpD/J212KMQMhLsR42ZmqIKNmdtXe /urlHh76PJXBMysGetI3NET8yTtrocPgYhaw11aIc9+W6qVX3UcFqCn67aqlzop2wY/DbwV9A 0j3KppNYpikoXavTrQue2aSP9eaVLARIKLa0BkBLtNcCbr8Tl4SwnY6nqlPlHNlf3gAECNZkW TH6OZhJU6KJ10rI8KoVHPHhPV+mQfYlbNHBdUiUAOhsS2uqT3gy9DYStyI4VaJD+3QfjML+Nt iCYnTwGl+Ei6a7OQAg/9BbSLkaFyR2gfs9a+D0hJIY2IcVjq5YpRjdpcITGdKARlK1eIRf4G6 nZ0wxyBR1N8j0b/GxJMlC8yCLqeLz0EE6zBy+eLUZi9tKFXASmLmgFZmL/Y0KusPuJwiiTRKg V5HpWd2fuhbLTzWxLUGG3hdFY5OW2fC6m/VZukzZl6rk2IL2FpWsFq4WYsr0Oz1kJOyuUHrQc Kt6c1SmPlWvXJLK1lRk8IhfCqKeNiWIJBlzSVutyfcYIIk2GnM0IcIi65vlMMuKQ+drxoH6eg qbNcuB1dKFWa/bvfEPy6v5UON2He0dXwjFKy3iZL4ZIE8DMdpxmc1DB1aCI0LKqvAvZPqd3Tu OXdJmCI7g2LNcJV9HnCu+gaj/BIYqDWy9Flc+dbbLdpkycRRFZGn06Gdo76rNa4uld/g1lpMV /a/u9/Z Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2109 Lines: 67 From: Markus Elfring Date: Tue, 4 Oct 2016 13:54:36 +0200 One local variable was set to an error code before a concrete error situation was detected. Thus move the corresponding assignment to the end to indicate a software failure there. Use it finally in four if branches for exception handling. Signed-off-by: Markus Elfring --- drivers/md/raid0.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index 3079c3e..0315f1e 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c @@ -173,7 +173,6 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) cnt = 0; smallest = NULL; dev = conf->devlist; - err = -EINVAL; rdev_for_each(rdev1, mddev) { int j = rdev1->raid_disk; @@ -194,17 +193,17 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) if (j < 0) { pr_err("%s: remove inactive devices before converting to RAID0\n", mdname(mddev)); - goto free_device_list; + goto e_inval; } if (j >= mddev->raid_disks) { pr_err("%s: bad disk number %d%s", mdname(mddev), j, " - aborting!\n"); - goto free_device_list; + goto e_inval; } if (dev[j]) { pr_err("%s: multiple devices for %d%s", mdname(mddev), j, " - aborting!\n"); - goto free_device_list; + goto e_inval; } dev[j] = rdev1; @@ -215,7 +214,7 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) if (cnt != mddev->raid_disks) { pr_err("%s: too few disks (%d of %d)%s", mdname(mddev), cnt, mddev->raid_disks, " - aborting!\n"); - goto free_device_list; + goto e_inval; } zone->nb_dev = cnt; zone->zone_end = smallest->sectors * cnt; @@ -280,6 +279,9 @@ static int create_strip_zones(struct mddev *mddev, struct r0conf **private_conf) kfree(conf); *private_conf = ERR_PTR(err); return err; +e_inval: + err = -EINVAL; + goto free_device_list; } /* Find the zone which holds a particular offset -- 2.10.1