diff --git a/src/plugins/select/bluegene/bg_job_info.c b/src/plugins/select/bluegene/bg_job_info.c index adb5a2c09e6744d4ed0009db4fd4805436d8e320..033545308f26e69a7174943bf52204675469c0a8 100644 --- a/src/plugins/select/bluegene/bg_job_info.c +++ b/src/plugins/select/bluegene/bg_job_info.c @@ -147,12 +147,15 @@ extern int set_select_jobinfo(select_jobinfo_t *jobinfo, for (i=0; i<jobinfo->dim_cnt; i++) { jobinfo->geometry[i] = uint16[i]; new_size *= uint16[i]; - /* Make sure the conn type is correct with the * new count */ - if ((new_size > 1) - && (first_conn_type >= SELECT_SMALL)) - jobinfo->conn_type[i] = SELECT_TORUS; + if (new_size > 1) { + if (first_conn_type != (uint16_t)NO_VAL) + jobinfo->conn_type[i] = SELECT_NAV; + else if (first_conn_type >= SELECT_SMALL) + jobinfo->conn_type[i] = + bg_conf->default_conn_type[i]; + } } break; @@ -213,9 +216,15 @@ extern int set_select_jobinfo(select_jobinfo_t *jobinfo, || (jobinfo->cnode_cnt < bg_conf->mp_cnode_cnt)) { if (jobinfo->conn_type[0] < SELECT_SMALL) jobinfo->conn_type[0] = SELECT_SMALL; - } else if (jobinfo->conn_type[0] >= SELECT_SMALL) - for (i=0; i<SYSTEM_DIMENSIONS; i++) - jobinfo->conn_type[i] = SELECT_TORUS; + } else if (jobinfo->conn_type[0] >= SELECT_SMALL) { + for (i=0; i<SYSTEM_DIMENSIONS; i++) { + if (jobinfo->conn_type[i] == (uint16_t)NO_VAL) + jobinfo->conn_type[i] = SELECT_NAV; + else + jobinfo->conn_type[i] = + bg_conf->default_conn_type[i]; + } + } break; case SELECT_JOBDATA_ALTERED: jobinfo->altered = *uint16;