From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752158AbbLMN6y (ORCPT ); Sun, 13 Dec 2015 08:58:54 -0500 Received: from mout.web.de ([212.227.15.14]:55714 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751666AbbLMN6w (ORCPT ); Sun, 13 Dec 2015 08:58:52 -0500 Subject: [PATCH 6/7] staging: lustre: A few checks less in mgc_process_recover_log() after error detection To: Andreas Dilger , Greg Kroah-Hartman , Oleg Drokin , lustre-devel@lists.lustre.org, devel@driverdev.osuosl.org References: <566ABCD9.1060404@users.sourceforge.net> <566D7733.1030102@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: <566D7989.6090205@users.sourceforge.net> Date: Sun, 13 Dec 2015 14:58:33 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <566D7733.1030102@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:0pee8ZNZfsMbcwUv7GH8gqgA/k0KPgLitX5oRuCZTL0U31UZ7rG GfpSQ5Mh8HudamfVXu/Ld3DdmtXcoyIOVZXWKwj4g+BuJzVlPPKXz5FIKcLj9ETajft4Vr4 jCWaDQvH9ARpBpy+RwYosmf6YhQQu0qk8dfgAxZvhk+tEQ9kckRbwAI0MoULYDiYdIkvlvL JfiIedragfSXDqLoSRYEw== X-UI-Out-Filterresults: notjunk:1;V01:K0:5l9Hpm19tQI=:VzS7403iXMKIgso+R3JpZ7 OeId49di8vzPgBi59MoeAczfzPSlUihyZSVDi8eqfCbWb+yn80Ist8eED+tbt+iLt3eCEtExR fHhbZqYyMV/tmOWlop47evy6zeFHTYKfMwCaxRRxc/LkBNXBSBU7dK3C/5uy1pzSSqfr8BC0V iMzMBw9KD/Cz3QsZVvO6mTzujBbZK618Npplk6RsbEfq0o3Zii2W4taSA5mXoei7vfT3QDvSb YPbsxTRFcki3dRnwSyWZXmUEXUsIA8q9LBpwul5ypfYG+ldy7aANpKIg5HRKtd77eTDVN8OLd I4dZnlki4N+8bJdvC/+/vRmNjE6spdo4lvgeBiFIuYXbiVEMnvaFxtWNihmY7a6Z9LDgDrzwm 5vmZza9Z21+cwR1q4GM21TElv+mV+ZpJIOWzUSmI352uphGuIZHVvPjXXanP5H9rsH6TMnUAZ EyAVgXemrX0+BaDOoDbrtFPzaLsNZN7jBTUZAYiU7Yr2ewMuhycOIK+pNxBfQ1pJ5E+2NnATj CMlOqHbt28V/UVuAJb0NTKt5z//Igm0gicT/M+GaQxsQolgJrxQds7zJ52jpITo/bLD6skPfr /ENhuscP/8VAxHoHxCKzn9mFVjOJKZxsUIcnu4udsPIWCX5f6/gsqG2ymM8KesSjk08eTW2Nm GzUTzct+SSXNaMjWbRGmtdOa1+fwy1nLhU4yKR6E9u+uLE2QxtUg33s5wvAv5JD21eTBFP9Y2 S3qLwjxk6yRNPemWEeATNW535it+R68eLi5YMP4DsG+vEcVsrOGKJqn6T7Iy6HnKGta87AUVy Cb9CyLI Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Sun, 13 Dec 2015 13:03:58 +0100 A few checks would be performed by the mgc_process_recover_log() function even if it was determined that a call of the alloc_page() function failed. * This implementation detail could be improved by adjustments for jump targets according to the Linux coding style convention. * Move the assignment for the variable "eof" behind the memory allocation. * Delete another sanity check then. * The variable "req" will eventually be set to an appropriate pointer from a call of the ptlrpc_request_alloc() function. Thus let us omit the explicit initialisation before. Signed-off-by: Markus Elfring --- drivers/staging/lustre/lustre/mgc/mgc_request.c | 32 +++++++++++-------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index f3b4c30..7048722 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -1312,17 +1312,15 @@ static int mgc_process_recover_log(struct obd_device *obd, if (!pages) return -ENOMEM; - req = NULL; - eof = true; - for (i = 0; i < nrpages; i++) { pages[i] = alloc_page(GFP_KERNEL); if (pages[i] == NULL) { rc = -ENOMEM; - goto out; + goto free_pages; } } + eof = true; again: LASSERT(cld_is_recover(cld)); LASSERT(mutex_is_locked(&cld->cld_lock)); @@ -1330,12 +1328,12 @@ again: &RQF_MGS_CONFIG_READ); if (req == NULL) { rc = -ENOMEM; - goto out; + goto free_pages; } rc = ptlrpc_request_pack(req, LUSTRE_MGS_VERSION, MGS_CONFIG_READ); if (rc) - goto out; + goto finish_request; /* pack request */ body = req_capsule_client_get(&req->rq_pill, &RMF_MGS_CONFIG_BODY); @@ -1344,7 +1342,7 @@ again: if (strlcpy(body->mcb_name, cld->cld_logname, sizeof(body->mcb_name)) >= sizeof(body->mcb_name)) { rc = -E2BIG; - goto out; + goto finish_request; } body->mcb_offset = cfg->cfg_last_idx + 1; body->mcb_type = cld->cld_type; @@ -1356,7 +1354,7 @@ again: MGS_BULK_PORTAL); if (desc == NULL) { rc = -ENOMEM; - goto out; + goto finish_request; } for (i = 0; i < nrpages; i++) @@ -1365,12 +1363,12 @@ again: ptlrpc_request_set_replen(req); rc = ptlrpc_queue_wait(req); if (rc) - goto out; + goto finish_request; res = req_capsule_server_get(&req->rq_pill, &RMF_MGS_CONFIG_RES); if (res->mcr_size < res->mcr_offset) { rc = -EINVAL; - goto out; + goto finish_request; } /* always update the index even though it might have errors with @@ -1384,18 +1382,18 @@ again: ealen = sptlrpc_cli_unwrap_bulk_read(req, req->rq_bulk, 0); if (ealen < 0) { rc = ealen; - goto out; + goto finish_request; } if (ealen > nrpages << PAGE_CACHE_SHIFT) { rc = -EINVAL; - goto out; + goto finish_request; } if (ealen == 0) { /* no logs transferred */ if (!eof) rc = -EINVAL; - goto out; + goto finish_request; } mne_swab = !!ptlrpc_rep_need_swab(req); @@ -1425,14 +1423,12 @@ again: ealen -= PAGE_CACHE_SIZE; } - -out: - if (req) - ptlrpc_req_finished(req); +finish_request: + ptlrpc_req_finished(req); if (rc == 0 && !eof) goto again; - +free_pages: for (i = 0; i < nrpages; i++) { if (pages[i] == NULL) break; -- 2.6.3