Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751995AbcJBMBa (ORCPT ); Sun, 2 Oct 2016 08:01:30 -0400 Received: from mout.web.de ([212.227.17.12]:57319 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750940AbcJBMBX (ORCPT ); Sun, 2 Oct 2016 08:01:23 -0400 Subject: [PATCH 5/13] md/multipath: Less function calls in multipath_run() after error detection To: linux-raid@vger.kernel.org, Jens Axboe , NeilBrown , Shaohua Li References: <566ABCD9.1060404@users.sourceforge.net> <4a31d7a7-f70c-12f7-202f-963bd8706066@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <0e0d240c-a386-25f4-9415-6185aabbcf21@users.sourceforge.net> Date: Sun, 2 Oct 2016 14:01:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <4a31d7a7-f70c-12f7-202f-963bd8706066@users.sourceforge.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:v5up3C+nvU1Oc4dl7Y75qPJzTuegy66sH9d4ch4MnQIke2Bq+2Y EOaKHgWF2L5rX8MlEtWodxmyvHedsVcwH1k9mMStGnBu0SpsYUIzxTmLSaInECdI8N6yEtL ZvQomMxNAbjKiXGfAmt3sjYWp5NZMK6vcYjpqcppqDEEB0yL7AK//yjF0v8wBY40CM4eh8D PmoFvfmJPj9z5DddW1cCA== X-UI-Out-Filterresults: notjunk:1;V01:K0:UKY92Utxf/U=:/O2x6PWlFJd+3m3x8KNIAj iABTa+VJPbFd7pabZ7Jculeu6JN2UNXvOuO/O7MJa8eD8pvk92wnqCkGWhvu3YWmXAhanWiJr b6EOSLf4kwdyTOy2wNE9HLRnII/GdUiySbQa7CZytXf1dg5/uj7WkNypNuhvo4qmtalaIGfDf wzHBLNl6h5acwHnO+rG9XOiSPq68OjuxR3Tw8BOJtjIKH/sXRXmHeF+S/Is7td/Sq+KtC+2of w8dgnKFltWZxXy0kI4sN/w1oXcut203wcZoQNCTHYbjEnY6rPkxrey3orwVx7oi67kOtpRtWV GzjXFZyDO3w7g2zUaTmi5pa1V/PdCyoqzDAAE6Oxu1CKkH4Znn+kRlPmqG3PicLGPkwt60TZy lumCF8LKLDUcJ6R+MWIrzgGa4QuCGZy2T1UKN31X5m9CCBBei7yBrUsqzrvy/VcLmgLXDyz1p 45IqavGgqjtQ69oyE7pXBzvuQDtTsyI2LF/oR2063hQvUBNqlz7bnhcgQ7iGJo1q70oVq3Gzv rBIzVwauaHRBUg4YTb3nzVxK5MrSZYCQTBaclgWsq8a6FhDTRvV4TqJ2KI1GXNY9V3VEtqqW5 KeEHBwbfmxTZp9Yv+Q4fYYROK0rBiZ0rNI/nJXwuKuYORFI2mGEQiyJYlbckgjWr/l15nc93V dswBVqyxhLFHfhWEEGOJv6hFbY8vkCayHAW6gjPqplj3aPJ6AHWGHclR9yZxJZJ8eeKJ2XIuf M+q7ZtCFXFArrcS3qcfBqcZElJx/G0pRiJ/kEIegpnt45jkJJpm9airirGtM80pZ6lcb1dbnG oD2Rp7Z Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1986 Lines: 69 From: Markus Elfring Date: Sat, 1 Oct 2016 21:48:59 +0200 The functions "kfree" and "mempool_destroy" were called in a few cases by the function "multipath_run" during error handling even if the passed data structure member contained a null pointer. Adjust jump targets according to the Linux coding style convention. Signed-off-by: Markus Elfring --- drivers/md/multipath.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c index 7900426..2e4ceb9 100644 --- a/drivers/md/multipath.c +++ b/drivers/md/multipath.c @@ -408,7 +408,7 @@ static int multipath_run (struct mddev *mddev) sizeof(*conf->multipaths), GFP_KERNEL); if (!conf->multipaths) - goto out_free_conf; + goto free_conf; working_disks = 0; rdev_for_each(rdev, mddev) { @@ -434,18 +434,18 @@ static int multipath_run (struct mddev *mddev) if (!working_disks) { printk(KERN_ERR "multipath: no operational IO paths for %s\n", mdname(mddev)); - goto out_free_conf; + goto free_multipaths; } mddev->degraded = conf->raid_disks - working_disks; conf->pool = mempool_create_kmalloc_pool(NR_RESERVED_BUFS, sizeof(struct multipath_bh)); if (!conf->pool) - goto out_free_conf; + goto free_multipaths; mddev->thread = md_register_thread(multipathd, mddev, "multipath"); if (!mddev->thread) - goto out_free_conf; + goto destroy_pool; printk(KERN_INFO "multipath: array %s active with %d out of %d IO paths\n", @@ -457,13 +457,14 @@ static int multipath_run (struct mddev *mddev) md_set_array_sectors(mddev, multipath_size(mddev, 0, 0)); if (md_integrity_register(mddev)) - goto out_free_conf; + goto destroy_pool; return 0; - -out_free_conf: +destroy_pool: mempool_destroy(conf->pool); +free_multipaths: kfree(conf->multipaths); +free_conf: kfree(conf); mddev->private = NULL; out: -- 2.10.0