Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1450797

[PATCH 07/12] staging: lustre: Less checks after a failed alloc_page() in mgc_process_recover_log()

From SF Markus Elfring <elfring@users.sourceforge.net>
Newsgroups linux.kernel
Subject [PATCH 07/12] staging: lustre: Less checks after a failed alloc_page() in mgc_process_recover_log()
Date 2016-07-26 21:10 +0200
Message-ID <rZfTP-5XI-9@gated-at.bofh.it> (permalink)
References (1 earlier) <qFfce-yf-5@gated-at.bofh.it> <qIe0h-220-1@gated-at.bofh.it> <qIe9X-25k-7@gated-at.bofh.it> <qIinh-4Eb-35@gated-at.bofh.it> <rZfK9-5Fs-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Markus Elfring <elfring@users.sourceforge.net>
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 <elfring@users.sourceforge.net>
---
 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

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/12] staging-Lustre: Fine-tuning for seven function  implementations SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:00 +0200
  [PATCH 01/12] staging/lustre/ldlm: Delete unnecessary checks before  the function call "kset_unregister" SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:00 +0200
  [PATCH 04/12] staging: lustre: Split a condition check in  class_register_type() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:10 +0200
  [PATCH 06/12] staging: lustre: Return directly after a failed  kcalloc() in mgc_process_recover_log() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:10 +0200
  [PATCH 02/12] staging: lustre: Delete unnecessary checks before the  function call "kobject_put" SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:10 +0200
  [PATCH 07/12] staging: lustre: Less checks after a failed  alloc_page() in mgc_process_recover_log() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:10 +0200
  [PATCH 08/12] staging: lustre: Less checks after a failed  ptlrpc_request_alloc() in mgc_process_recover_log() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:10 +0200
  [PATCH 05/12] staging: lustre: Optimize error handling in  class_register_type() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:10 +0200
    Re: [PATCH 05/12] staging: lustre: Optimize error handling in class_register_type() Oleg Drokin <oleg.drokin@intel.com> - 2016-07-26 21:20 +0200
      Re: [lustre-devel] [PATCH 05/12] staging: lustre: Optimize error handling in class_register_type() Oleg Drokin <oleg.drokin@intel.com> - 2016-07-26 21:20 +0200
      Re: staging: lustre: Optimize error handling in class_register_type() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 22:20 +0200
  Re: [PATCH 03/12] staging: lustre: One function call less in class_register_type() after error detection Oleg Drokin <oleg.drokin@intel.com> - 2016-07-26 21:10 +0200
    Re: staging: lustre: One function call less in class_register_type()  after error detection SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 22:00 +0200
      Re: staging: lustre: One function call less in class_register_type() after error detection Oleg Drokin <oleg.drokin@intel.com> - 2016-07-27 00:00 +0200
        Re: staging: lustre: One function call less in class_register_type()  after error detection SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-28 08:00 +0200
          Re: [lustre-devel] staging: lustre: One function call less in class_register_type() after error detection Oleg Drokin <oleg.drokin@intel.com> - 2016-07-29 17:30 +0200
            Re: [lustre-devel] staging: lustre: One function call less in  class_register_type() after error detection SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-30 08:30 +0200
  [PATCH 03/12] staging: lustre: One function call less in  class_register_type() after error detection SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:10 +0200
  [PATCH 12/12] staging: lustre: Delete an unnecessary variable  initialisation in mgc_process_recover_log() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:20 +0200
  [PATCH 11/12] staging: lustre: Move an assignment for the variable  "eof" in mgc_process_recover_log() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:20 +0200
  [PATCH 10/12] staging: lustre: Rename jump labels in  mgc_process_recover_log() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:20 +0200
  [PATCH 09/12] staging: lustre: Delete a check for the variable "req"  in mgc_process_recover_log() SF Markus Elfring <elfring@users.sourceforge.net> - 2016-07-26 21:20 +0200

csiph-web