From 23cc54810c90dc014aae238ad38e3ca3b3e09ab9 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Fri, 13 Aug 2010 00:01:57 +0000 Subject: [PATCH] make multi_core stuff backwards compatible --- src/common/gres.c | 10 +++++----- src/common/slurm_protocol_pack.c | 10 ++++++---- src/common/slurm_protocol_pack.h | 6 ++++-- src/slurmctld/job_mgr.c | 12 +++++++----- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/common/gres.c b/src/common/gres.c index a82e7805bac..01306f76197 100644 --- a/src/common/gres.c +++ b/src/common/gres.c @@ -2139,7 +2139,7 @@ extern int gres_plugin_job_state_unpack(List *gres_list, Buf buffer, uint32_t job_id, uint16_t protocol_version) { - int i, rc; + int i = 0, rc; uint32_t magic, plugin_id; uint16_t rec_cnt; uint8_t has_more; @@ -2205,12 +2205,12 @@ extern int gres_plugin_job_state_unpack(List *gres_list, Buf buffer, buffer); } } - for (i=0; i<gres_context_cnt; i++) { - if (gres_context[i].plugin_id == plugin_id) - break; - } } + for (i=0; i<gres_context_cnt; i++) { + if (gres_context[i].plugin_id == plugin_id) + break; + } if (i >= gres_context_cnt) { /* A likely sign that GresPlugins has changed. * Not a fatal error, skip over the data. */ diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c index 143b6ea0684..decd0282ce8 100644 --- a/src/common/slurm_protocol_pack.c +++ b/src/common/slurm_protocol_pack.c @@ -3705,7 +3705,7 @@ _unpack_job_info_members(job_info_t * job, Buf buffer, xfree(node_inx_str); } - if (unpack_multi_core_data(&mc_ptr, buffer)) + if (unpack_multi_core_data(&mc_ptr, buffer, protocol_version)) goto unpack_error; if (mc_ptr) { job->sockets_per_node = mc_ptr->sockets_per_node; @@ -3809,7 +3809,7 @@ _unpack_job_info_members(job_info_t * job, Buf buffer, xfree(node_inx_str); } - if (unpack_multi_core_data(&mc_ptr, buffer)) + if (unpack_multi_core_data(&mc_ptr, buffer, protocol_version)) goto unpack_error; if (mc_ptr) { job->sockets_per_node = mc_ptr->sockets_per_node; @@ -7628,7 +7628,8 @@ unpack_error: } extern void -pack_multi_core_data (multi_core_data_t *multi_core, Buf buffer) +pack_multi_core_data (multi_core_data_t *multi_core, Buf buffer, + uint16_t protocol_version) { if (multi_core == NULL) { pack8((uint8_t) 0, buffer); /* flag as Empty */ @@ -7647,7 +7648,8 @@ pack_multi_core_data (multi_core_data_t *multi_core, Buf buffer) } extern int -unpack_multi_core_data (multi_core_data_t **mc_ptr, Buf buffer) +unpack_multi_core_data (multi_core_data_t **mc_ptr, Buf buffer, + uint16_t protocol_version) { uint8_t flag; multi_core_data_t *multi_core; diff --git a/src/common/slurm_protocol_pack.h b/src/common/slurm_protocol_pack.h index 986161e6b4a..9aa576ee692 100644 --- a/src/common/slurm_protocol_pack.h +++ b/src/common/slurm_protocol_pack.h @@ -140,8 +140,10 @@ extern int unpack_msg ( slurm_msg_t * msg , Buf buffer ); /* char *partition, char *nodes, char *name, char *network, */ /* Buf buffer ); */ -extern void pack_multi_core_data (multi_core_data_t *multi_core, Buf buffer); -extern int unpack_multi_core_data (multi_core_data_t **multi_core, Buf buffer); +extern void pack_multi_core_data (multi_core_data_t *multi_core, Buf buffer, + uint16_t protocol_version); +extern int unpack_multi_core_data (multi_core_data_t **multi_core, Buf buffer, + uint16_t protocol_version); extern int slurm_unpack_block_info_msg( block_info_msg_t **block_info_msg_pptr, Buf buffer, uint16_t protocol_version); diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 360b3a160f6..e9531f20eb6 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -1394,7 +1394,8 @@ void _dump_job_details(struct job_details *detail_ptr, Buf buffer) packstr(detail_ptr->ckpt_dir, buffer); packstr(detail_ptr->restart_dir, buffer); - pack_multi_core_data(detail_ptr->mc_ptr, buffer); + pack_multi_core_data(detail_ptr->mc_ptr, buffer, + SLURM_PROTOCOL_VERSION); packstr_array(detail_ptr->argv, detail_ptr->argc, buffer); packstr_array(detail_ptr->env_sup, detail_ptr->env_cnt, buffer); } @@ -1465,7 +1466,7 @@ static int _load_job_details(struct job_record *job_ptr, Buf buffer, safe_unpackstr_xmalloc(&ckpt_dir, &name_len, buffer); safe_unpackstr_xmalloc(&restart_dir, &name_len, buffer); - if (unpack_multi_core_data(&mc_ptr, buffer)) + if (unpack_multi_core_data(&mc_ptr, buffer, protocol_version)) goto unpack_error; safe_unpackstr_array(&argv, &argc, buffer); safe_unpackstr_array(&env_sup, &env_cnt, buffer); @@ -1511,7 +1512,7 @@ static int _load_job_details(struct job_record *job_ptr, Buf buffer, safe_unpackstr_xmalloc(&ckpt_dir, &name_len, buffer); safe_unpackstr_xmalloc(&restart_dir, &name_len, buffer); - if (unpack_multi_core_data(&mc_ptr, buffer)) + if (unpack_multi_core_data(&mc_ptr, buffer, protocol_version)) goto unpack_error; safe_unpackstr_array(&argv, &argc, buffer); safe_unpackstr_array(&env_sup, &env_cnt, buffer); @@ -5109,7 +5110,8 @@ static void _pack_pending_job_details(struct job_details *detail_ptr, packstr(detail_ptr->exc_nodes, buffer); pack_bit_fmt(detail_ptr->exc_node_bitmap, buffer); - pack_multi_core_data(detail_ptr->mc_ptr, buffer); + pack_multi_core_data(detail_ptr->mc_ptr, buffer, + protocol_version); } else { pack16((uint16_t) 0, buffer); pack16((uint16_t) 0, buffer); @@ -5124,7 +5126,7 @@ static void _pack_pending_job_details(struct job_details *detail_ptr, packnull(buffer); packnull(buffer); - pack_multi_core_data(NULL, buffer); + pack_multi_core_data(NULL, buffer, protocol_version); } } } -- GitLab