I found that our previous patch for partition limit modification
checking was a little too zealous. It was overwritting the
state reason if a hold modification was issued, which results
in a user hold being an admin hold. This fixes that.
 
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index 04c6f46..125d75f 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -7701,7 +7701,9 @@ int update_job(job_desc_msg_t * job_specs, uid_t uid)
 		xfree(job_ptr->state_desc);
 		return error_code;
 	} else
-		job_ptr->state_reason = WAIT_NO_REASON;
+		if (job_ptr->state_reason != WAIT_HELD &&
+		    job_ptr->state_reason != WAIT_HELD_USER)
+			job_ptr->state_reason = WAIT_NO_REASON;
 
 #ifdef HAVE_BG
 	select_g_select_jobinfo_get(job_specs->select_jobinfo,
