From 538c881fef87712f1564ab6c4466ccee352a5399 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Tue, 17 May 2011 11:23:51 -0700
Subject: [PATCH] BLUEGENE - on an emulated system fixed freeing a block
 through scontrol

---
 src/plugins/select/bluegene/bg_core.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/plugins/select/bluegene/bg_core.c b/src/plugins/select/bluegene/bg_core.c
index 38b0360de6e..72b9f164e6a 100644
--- a/src/plugins/select/bluegene/bg_core.c
+++ b/src/plugins/select/bluegene/bg_core.c
@@ -406,16 +406,19 @@ extern int bg_free_block(bg_record_t *bg_record, bool wait, bool locked)
 		/* Fake a free since we are n deallocating
 		   state before this.
 		*/
-		if (bg_record->state & BG_BLOCK_ERROR_FLAG)
+		if (bg_record->state & BG_BLOCK_ERROR_FLAG) {
+			/* This will set the state to ERROR(Free)
+			 * just incase the state was ERROR(SOMETHING ELSE) */
+			bg_record->state = BG_BLOCK_ERROR_FLAG;
 			break;
-		else if (count >= 3)
+		} else if (count >= 3)
 			bg_record->state = BG_BLOCK_FREE;
 		else if (bg_record->state != BG_BLOCK_FREE)
 			bg_record->state = BG_BLOCK_TERM;
 #endif
 
 		if (!wait || (bg_record->state == BG_BLOCK_FREE)
-#ifdef HAVE_BGL
+#ifndef HAVE_BGL
 		    ||  (bg_record->state & BG_BLOCK_ERROR_FLAG)
 #endif
 			) {
-- 
GitLab