From c55c6fb9753553b01d066bc4d6f52ac4244452d0 Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Thu, 24 Jul 2014 10:54:32 -0700
Subject: [PATCH] For hold/resume return highest error code

---
 src/scontrol/update_job.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/scontrol/update_job.c b/src/scontrol/update_job.c
index dbd722f7bf2..0367731e680 100644
--- a/src/scontrol/update_job.c
+++ b/src/scontrol/update_job.c
@@ -249,7 +249,7 @@ scontrol_hold(char *op, char *job_str)
 {
 	static uint32_t last_job_id = NO_VAL;
 	static job_info_msg_t *resp = NULL;
-	int i, rc = SLURM_SUCCESS;
+	int i, rc = SLURM_SUCCESS, rc2;
 	char *next_str;
 	job_desc_msg_t job_msg;
 	uint32_t job_id = 0;
@@ -323,12 +323,14 @@ scontrol_hold(char *op, char *job_str)
 			if (job_name)
 				continue;
 			slurm_seterrno(ESLURM_JOB_NOT_PENDING);
-			return ESLURM_JOB_NOT_PENDING;
+			rc = MAX(rc, ESLURM_JOB_NOT_PENDING);
 		}
 
 		job_msg.job_id = job_ptr->job_id;
-		if (slurm_update_job(&job_msg))
-			rc = slurm_get_errno();
+		if (slurm_update_job(&job_msg)) {
+			rc2 = slurm_get_errno();
+			rc = MAX(rc, rc2);
+		}
 
 		if (array_id != NO_VAL)
 			break;
-- 
GitLab