From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757137AbcGZTI2 (ORCPT ); Tue, 26 Jul 2016 15:08:28 -0400 Received: from mout.web.de ([212.227.15.4]:57561 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753187AbcGZTIZ (ORCPT ); Tue, 26 Jul 2016 15:08:25 -0400 Subject: [PATCH 07/12] staging: lustre: Less checks after a failed alloc_page() in mgc_process_recover_log() To: devel@driverdev.osuosl.org, lustre-devel@lists.lustre.org, Andreas Dilger , Greg Kroah-Hartman , Oleg Drokin References: <566ABCD9.1060404@users.sourceforge.net> <566D7733.1030102@users.sourceforge.net> <56784D83.7080108@users.sourceforge.net> <56784F0C.6040007@users.sourceforge.net> <20151221234857.GA27079@kroah.com> <59d94e70-7476-728e-5f63-013557ec2db9@users.sourceforge.net> Cc: LKML , kernel-janitors@vger.kernel.org, Julia Lawall , Bhumika Goyal From: SF Markus Elfring Message-ID: <8b1f7027-7831-a7b3-f902-6e8053b46771@users.sourceforge.net> Date: Tue, 26 Jul 2016 21:08:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2 MIME-Version: 1.0 In-Reply-To: <59d94e70-7476-728e-5f63-013557ec2db9@users.sourceforge.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:7AY1coEIdxaLt6f0qauaGGTveT2eSC3rLqrL8leRXVmWri1AMIV eWMZHAs0kuXFnK8/d1Mwmw2WdZrqJfpZoAgWIdfKHBEzgwhofevSVzFtRmSumbvZ6Cb9qO+ RH1lVorTEegTY+TLUHfuVZ4ubAz5SaitNyaH2hXV7HjD0dLoHy6aGJajRyCW+uBzva43vG4 ae7qZxPbfePZYLlgDgtNg== X-UI-Out-Filterresults: notjunk:1;V01:K0:KaMGAYA0sdU=:j4FKq1qZjwvGJ5CWvklTLi X4+DiZDoYrNF2Mo0WEVdROM8ESvXAvaHoHo2fTxDLJtFkcsTpOkk/LQ9nU3paB9rwC91Lz+QU En1fBYo3zf//MF50ZbNQcNq2eAk0fcH1V8XFmEYDC90a2MPpNsY92f4I7OnbtJ5vgC4PWn8tS IUOejansJfR2GgQ1WYWcP/oQC1/OYYUTaDj7KBIcLFEtfngd9g4zWxonpyuRAKVBEyDVz0EaS TqQ0kpPaR151NBLKxPc59RWDVs+2hgefrk1yZe9SFxBVHjwB6ulNYokHdVYZQnKEB3fYWgLAI df15S/7TAQVi6fIMcnR9ROn2ckkmn+SnJj5xUx47PQf2L3ESuD12pZt/d6dfnBPqbEpWkFuCc aRCrmFtGWtCrQA6G1Qvx5J1SV56eSJaKt6glQpU4VvQo3XlHKEr8DUy2PO5xS9fs0Q3nBBhrH sacRGdC8V4Z+zvnBFUMGCjdGzavJ/n4dkSWdqQQ8i9niRNxp6dgTCxNba5ivpsFaoJWOScocF oP9gDKEOGKpZbSJh4WAdD3AEfAlr1G1UrQvYEEUCfHaZAEGGBPjI0zay7k84Z+G3NBO8qpnVQ EjYk+8gcysbmT6X1l1esrGsASdvD6r+bZ70hI+X6c5OayeBhYqUc0gBjuhNzJg+fInvtMeV83 a7syzKeDhhcVSIR+SVXlbpJyxe72KpNXM+HfpZvOwdQPrwM8v0jm1ixw1p3gzc2KyWlrTazw+ KuRJazbFQTFcxqxrYF7coVxARPozsjvCOok9DY2ubnEIYX1bGFAFa0T849DfGl9qfc8ht2d2+ qRkiarO Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Tue, 26 Jul 2016 17:12:51 +0200 Release memory directly after a page allocation failed at the beginning. Signed-off-by: Markus Elfring --- drivers/staging/lustre/lustre/mgc/mgc_request.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/lustre/lustre/mgc/mgc_request.c b/drivers/staging/lustre/lustre/mgc/mgc_request.c index d716bb2..b064bd3 100644 --- a/drivers/staging/lustre/lustre/mgc/mgc_request.c +++ b/drivers/staging/lustre/lustre/mgc/mgc_request.c @@ -1346,7 +1346,7 @@ static int mgc_process_recover_log(struct obd_device *obd, pages[i] = alloc_page(GFP_KERNEL); if (!pages[i]) { rc = -ENOMEM; - goto out; + goto free_pages; } } @@ -1461,14 +1461,13 @@ out: if (rc == 0 && !eof) goto again; - if (pages) { - for (i = 0; i < nrpages; i++) { - if (!pages[i]) - break; - __free_page(pages[i]); - } - kfree(pages); +free_pages: + for (i = 0; i < nrpages; i++) { + if (!pages[i]) + break; + __free_page(pages[i]); } + kfree(pages); return rc; } -- 2.9.2