From 0e55819e884be1fca82ab3f8bb80a80f11b4159f Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Thu, 25 Jun 2009 21:34:17 +0000 Subject: [PATCH] clean up some code for node info purging. put all into one function rather than have duplication in 3 functions --- src/slurmctld/node_mgr.c | 42 ++++++++++++++++++------------------- src/slurmctld/read_config.c | 16 +++++--------- src/slurmctld/slurmctld.h | 3 +++ 3 files changed, 28 insertions(+), 33 deletions(-) diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c index c183e6936e0..daf01d65d24 100644 --- a/src/slurmctld/node_mgr.c +++ b/src/slurmctld/node_mgr.c @@ -235,6 +235,18 @@ create_node_record (struct config_record *config_ptr, char *node_name) return node_ptr; } +/* Purge the contents of a node record */ +extern void purge_node_rec(struct node_record *node_ptr) +{ + xfree(node_ptr->arch); + xfree(node_ptr->comm_name); + xfree(node_ptr->features); + xfree(node_ptr->name); + xfree(node_ptr->os); + xfree(node_ptr->part_pptr); + xfree(node_ptr->reason); + select_g_select_nodeinfo_free(node_ptr->select_nodeinfo); +} /* * _delete_config_record - delete all configuration records @@ -696,18 +708,11 @@ int init_node_conf (void) { last_node_update = time (NULL); int i; + struct node_record *node_ptr; - for (i=0; i<node_record_count; i++) { - xfree(node_record_table_ptr[i].arch); - xfree(node_record_table_ptr[i].comm_name); - xfree(node_record_table_ptr[i].features); - xfree(node_record_table_ptr[i].name); - xfree(node_record_table_ptr[i].os); - xfree(node_record_table_ptr[i].part_pptr); - xfree(node_record_table_ptr[i].reason); - select_g_select_nodeinfo_free( - node_record_table_ptr[i].select_nodeinfo); - } + node_ptr = node_record_table_ptr; + for (i=0; i< node_record_count; i++, node_ptr++) + purge_node_rec(node_ptr); node_record_count = 0; xfree(node_record_table_ptr); @@ -2638,6 +2643,7 @@ void make_node_idle(struct node_record *node_ptr, void node_fini(void) { int i; + struct node_record *node_ptr; if (config_list) { list_destroy(config_list); @@ -2646,17 +2652,9 @@ void node_fini(void) feature_list = NULL; } - for (i=0; i< node_record_count; i++) { - xfree(node_record_table_ptr[i].arch); - xfree(node_record_table_ptr[i].comm_name); - xfree(node_record_table_ptr[i].features); - xfree(node_record_table_ptr[i].name); - xfree(node_record_table_ptr[i].os); - xfree(node_record_table_ptr[i].part_pptr); - xfree(node_record_table_ptr[i].reason); - select_g_select_nodeinfo_free( - node_record_table_ptr[i].select_nodeinfo); - } + node_ptr = node_record_table_ptr; + for (i=0; i< node_record_count; i++, node_ptr++) + purge_node_rec(node_ptr); FREE_NULL_BITMAP(idle_node_bitmap); FREE_NULL_BITMAP(avail_node_bitmap); diff --git a/src/slurmctld/read_config.c b/src/slurmctld/read_config.c index 58ede152e7e..4dfa40acc65 100644 --- a/src/slurmctld/read_config.c +++ b/src/slurmctld/read_config.c @@ -1002,18 +1002,12 @@ static void _purge_old_node_state(struct node_record *old_node_table_ptr, int old_node_record_count) { int i; + struct node_record *node_ptr; + + node_ptr = old_node_table_ptr; + for (i=0; i< old_node_record_count; i++, node_ptr++) + purge_node_rec(node_ptr); - for (i = 0; i < old_node_record_count; i++) { - xfree(old_node_table_ptr[i].arch); - xfree(old_node_table_ptr[i].comm_name); - xfree(old_node_table_ptr[i].features); - xfree(old_node_table_ptr[i].name); - xfree(old_node_table_ptr[i].os); - xfree(old_node_table_ptr[i].part_pptr); - xfree(old_node_table_ptr[i].reason); - select_g_select_nodeinfo_free( - node_record_table_ptr[i].select_nodeinfo); - } xfree(old_node_table_ptr); } diff --git a/src/slurmctld/slurmctld.h b/src/slurmctld/slurmctld.h index 48add9f6d12..44f11e589b1 100644 --- a/src/slurmctld/slurmctld.h +++ b/src/slurmctld/slurmctld.h @@ -1412,6 +1412,9 @@ extern void part_filter_set(uid_t uid); /* part_fini - free all memory associated with partition records */ extern void part_fini (void); +/* Purge the contents of a node record */ +extern void purge_node_rec(struct node_record *node_ptr); + /* * purge_old_job - purge old job records. * the jobs must have completed at least MIN_JOB_AGE minutes ago -- GitLab