diff --git a/src/common/gres.c b/src/common/gres.c index 3b67302c03d3a4ad8fc39f5285b9f73d42081bbe..e768935feed97b079e17f713a6abd6b5134f85e1 100644 --- a/src/common/gres.c +++ b/src/common/gres.c @@ -2127,34 +2127,36 @@ extern void gres_plugin_node_feature(char *node_name, *new_config = new_gres; slurm_mutex_lock(&gres_context_lock); - if ((gres_context_cnt > 0) && (*gres_list == NULL)) { - *gres_list = list_create(_gres_node_list_delete); - } - gres_iter = list_iterator_create(*gres_list); - while ((gres_ptr = (gres_state_t *) list_next(gres_iter))) { - if (gres_ptr->plugin_id == plugin_id) - break; - } - list_iterator_destroy(gres_iter); - if (gres_ptr == NULL) { - gres_ptr = xmalloc(sizeof(gres_state_t)); - gres_ptr->plugin_id = plugin_id; - gres_ptr->gres_data = _build_gres_node_state(); - list_append(*gres_list, gres_ptr); - } - gres_node_ptr = gres_ptr->gres_data; - if (gres_size >= gres_node_ptr->gres_cnt_alloc) { - gres_node_ptr->gres_cnt_avail = gres_size - + if (gres_context_cnt > 0) { + if (*gres_list == NULL) + *gres_list = list_create(_gres_node_list_delete); + gres_iter = list_iterator_create(*gres_list); + while ((gres_ptr = (gres_state_t *) list_next(gres_iter))) { + if (gres_ptr->plugin_id == plugin_id) + break; + } + list_iterator_destroy(gres_iter); + if (gres_ptr == NULL) { + gres_ptr = xmalloc(sizeof(gres_state_t)); + gres_ptr->plugin_id = plugin_id; + gres_ptr->gres_data = _build_gres_node_state(); + list_append(*gres_list, gres_ptr); + } + gres_node_ptr = gres_ptr->gres_data; + if (gres_size >= gres_node_ptr->gres_cnt_alloc) { + gres_node_ptr->gres_cnt_avail = gres_size - gres_node_ptr->gres_cnt_alloc; - } else { - error("%s: Changed size count of GRES %s from %"PRIu64" to %" - PRIu64", resource over allocated", __func__, gres_name, - gres_node_ptr->gres_cnt_avail, gres_size); - gres_node_ptr->gres_cnt_avail = 0; - } - gres_node_ptr->gres_cnt_config = gres_size; - gres_node_ptr->gres_cnt_found = gres_size; - gres_node_ptr->node_feature = true; + } else { + error("%s: Changed size count of GRES %s from %"PRIu64 + " to %"PRIu64", resource over allocated", + __func__, gres_name, + gres_node_ptr->gres_cnt_avail, gres_size); + gres_node_ptr->gres_cnt_avail = 0; + } + gres_node_ptr->gres_cnt_config = gres_size; + gres_node_ptr->gres_cnt_found = gres_size; + gres_node_ptr->node_feature = true; + } slurm_mutex_unlock(&gres_context_lock); }