diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c index bba9c77d04e6b175fd3ccefed46f421973fa01e5..fc81f41396a9faaba2b4ad186266828f0e729a8f 100644 --- a/src/slurmctld/node_mgr.c +++ b/src/slurmctld/node_mgr.c @@ -962,13 +962,13 @@ int update_node ( update_node_msg_t * update_node_msg ) bit_clear (idle_node_bitmap, node_inx); } else if (state_val == NODE_STATE_DRAINED) { - if (bit_test (idle_node_bitmap, node_inx) == - false) + if (!bit_test (idle_node_bitmap, node_inx)) state_val = NODE_STATE_DRAINING; bit_clear (up_node_bitmap, node_inx); } else if (state_val == NODE_STATE_DRAINING) { - if (bit_test (idle_node_bitmap, node_inx)) { + if (bit_test (idle_node_bitmap, node_inx) || + (!bit_test (up_node_bitmap, node_inx))) { state_val = NODE_STATE_DRAINED; bit_clear (idle_node_bitmap, node_inx); }