From 072101c2d70478fbb5ea0766d04a1be863436b6c Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Wed, 25 Nov 2009 16:47:29 +0000
Subject: [PATCH] job_desc_msg_t - in, out, err have been changed to std_in,
 std_out, and std_err respectfully.  Needed for PySLURM, since Python sees
 (in) as a keyword.

---
 NEWS                                   |  3 ++
 RELEASE_NOTES                          |  5 ++-
 slurm/slurm.h.in                       |  6 +--
 src/common/slurm_protocol_defs.c       | 12 +++---
 src/common/slurm_protocol_defs.h       |  6 +--
 src/common/slurm_protocol_pack.c       | 27 ++++++------
 src/sbatch/sbatch.c                    |  6 +--
 src/slurmctld/job_mgr.c                | 58 +++++++++++++-------------
 src/slurmctld/job_scheduler.c          |  6 +--
 src/slurmctld/proc_req.c               |  6 +--
 src/slurmctld/slurmctld.h              |  6 +--
 src/slurmd/slurmd/req.c                |  7 ++--
 src/slurmd/slurmstepd/slurmstepd_job.c | 12 +++---
 13 files changed, 84 insertions(+), 76 deletions(-)

diff --git a/NEWS b/NEWS
index a231dab97ab..81af27069ad 100644
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,9 @@ documents those changes that are of interest to users and admins.
     attempt to set previously non-existant uids every hour.
  -- Patch from Aaron Knister and Mark Grondona, to parse correctly quoted 
     #SBATCH options in a batch script.
+ -- job_desc_msg_t - in, out, err have been changed to std_in, std_out, 
+    and std_err respectfully.  Needed for PySLURM, since Python sees (in) 
+    as a keyword.
 
 * Changes in SLURM 2.1.0-pre7
 =============================
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 756fa637f2c..41c595614a8 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -86,7 +86,7 @@ COMMAND CHANGES (see man pages for details)
   minimum values of -sockets-per-node, --cores-per-socket and 
   --threads-per-core for now).
 * Change scontrol show job info: ReqProcs (number of processors requested) 
-  is replaced by NumProcs (number of processors requested or actually 
+  is replaced by NumCPUs (number of cpus requested or actually 
   allocated) and ReqNodes (number of nodes requested) is replaced by NumNodes 
   (number of nodes requested or actually allocated).
 
@@ -102,6 +102,9 @@ BLUEGENE SPECIFIC CHANGES
   SLURM_JOB_CPUS_PER_NODE now reference cnode counts instead of midplane
   counts.  SLURM_NODELIST still references midplane names.
 
+API CHANGES
+* job_desc_msg_t - in, out, err have been changed to std_in, std_out, 
+  and std_err respectfully. 
 
 OTHER CHANGES
 * A mechanism has been added for SPANK plugins to set environment variables 
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index 6ac82d9f55d..2260a563996 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -553,7 +553,6 @@ typedef struct job_descriptor {	/* For submit, allocate, and update requests */
 	char **environment;	/* environment variables to set for job, 
 				 *  name=value pairs, one per line */
 	uint32_t env_size;	/* element count in environment */
-	char *err;		/* pathname of stderr */
 	char *exc_nodes;	/* comma separated list of nodes excluded
 				 * from job's allocation, default NONE */
 	char *features;		/* comma separated list of required features, 
@@ -561,7 +560,6 @@ typedef struct job_descriptor {	/* For submit, allocate, and update requests */
 	uint32_t group_id;	/* group to assume, if run as root. */ 
 	uint16_t immediate;	/* 1 if allocate to run or fail immediately, 
 				 * 0 if to be queued awaiting resources */
-	char *in;		/* pathname of stdin */
 	uint32_t job_id;	/* job ID, default set by SLURM */
 	uint16_t kill_on_node_fail; /* 1 if node failure to kill job, 
 				 * 0 otherwise,default=1 */
@@ -579,7 +577,6 @@ typedef struct job_descriptor {	/* For submit, allocate, and update requests */
 	uint8_t open_mode;	/* out/err open mode truncate or append,
 				 * see OPEN_MODE_* */
 	uint16_t other_port;	/* port to send various notification msg to */
-	char *out;		/* pathname of stdout */
 	uint8_t overcommit;	/* over subscribe resources, for batch only */
 	char *partition;	/* name of requested partition, 
 				 * default in SLURM config */
@@ -656,6 +653,9 @@ typedef struct job_descriptor {	/* For submit, allocate, and update requests */
 
 	select_jobinfo_t *select_jobinfo; /* opaque data type,
 					  * SLURM internal use only */
+	char *std_err;		/* pathname of stderr */
+	char *std_in;		/* pathname of stdin */
+	char *std_out;		/* pathname of stdout */
 	char *wckey;            /* wckey for job */
 } job_desc_msg_t;
 
diff --git a/src/common/slurm_protocol_defs.c b/src/common/slurm_protocol_defs.c
index a99997ceff9..9df019e770c 100644
--- a/src/common/slurm_protocol_defs.c
+++ b/src/common/slurm_protocol_defs.c
@@ -323,10 +323,10 @@ void slurm_free_job_desc_msg(job_desc_msg_t * msg)
 		for (i = 0; i < msg->env_size; i++)
 			xfree(msg->environment[i]);
 		xfree(msg->environment);
-		xfree(msg->err);
+		xfree(msg->std_err);
 		xfree(msg->exc_nodes);
 		xfree(msg->features);
-		xfree(msg->in);
+		xfree(msg->std_in);
 		xfree(msg->licenses);
 		xfree(msg->linuximage);
 		xfree(msg->mail_user);
@@ -334,7 +334,7 @@ void slurm_free_job_desc_msg(job_desc_msg_t * msg)
 		xfree(msg->mloaderimage);
 		xfree(msg->name);
 		xfree(msg->network);
-		xfree(msg->out);
+		xfree(msg->std_out);
 		xfree(msg->partition);
 		xfree(msg->ramdiskimage);
 		xfree(msg->req_nodes);
@@ -361,9 +361,9 @@ void slurm_free_job_launch_msg(batch_job_launch_msg_t * msg)
 		xfree(msg->cpus_per_node);
 		xfree(msg->cpu_count_reps);
 		xfree(msg->script);
-		xfree(msg->err);
-		xfree(msg->in);
-		xfree(msg->out);
+		xfree(msg->std_err);
+		xfree(msg->std_in);
+		xfree(msg->std_out);
 		xfree(msg->work_dir);
 		xfree(msg->ckpt_dir);
 		xfree(msg->restart_dir);
diff --git a/src/common/slurm_protocol_defs.h b/src/common/slurm_protocol_defs.h
index 78755e65528..a66088600ad 100644
--- a/src/common/slurm_protocol_defs.h
+++ b/src/common/slurm_protocol_defs.h
@@ -723,9 +723,9 @@ typedef struct batch_job_launch_msg {
 	uint16_t cpus_per_task;	/* number of CPUs requested per task */
 	char *nodes;		/* list of nodes allocated to job_step */
 	char *script;		/* the actual job script, default NONE */
-	char *err;		/* pathname of stderr */
-	char *in;		/* pathname of stdin */
-	char *out;		/* pathname of stdout */
+	char *std_err;		/* pathname of stderr */
+	char *std_in;		/* pathname of stdin */
+	char *std_out;		/* pathname of stdout */
 	char *work_dir;		/* full pathname of working directory */
 	char *ckpt_dir;		/* location to store checkpoint image */
 	char *restart_dir;	/* retart execution from image in this dir */
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 4a605d6baf8..76a5c4e43cf 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -3370,9 +3370,9 @@ _pack_job_desc_msg(job_desc_msg_t * job_desc_ptr, Buf buffer)
 	packstr(job_desc_ptr->script, buffer);
 	packstr_array(job_desc_ptr->argv, job_desc_ptr->argc, buffer);
 
-	packstr(job_desc_ptr->err, buffer);
-	packstr(job_desc_ptr->in, buffer);
-	packstr(job_desc_ptr->out, buffer);
+	packstr(job_desc_ptr->std_err, buffer);
+	packstr(job_desc_ptr->std_in, buffer);
+	packstr(job_desc_ptr->std_out, buffer);
 	packstr(job_desc_ptr->work_dir, buffer);
 	packstr(job_desc_ptr->ckpt_dir, buffer);
 
@@ -3522,9 +3522,9 @@ _unpack_job_desc_msg(job_desc_msg_t ** job_desc_buffer_ptr, Buf buffer)
 	safe_unpackstr_xmalloc(&job_desc_ptr->script, &uint32_tmp, buffer);
 	safe_unpackstr_array(&job_desc_ptr->argv, &job_desc_ptr->argc, buffer);
 
-	safe_unpackstr_xmalloc(&job_desc_ptr->err, &uint32_tmp, buffer);
-	safe_unpackstr_xmalloc(&job_desc_ptr->in, &uint32_tmp, buffer);
-	safe_unpackstr_xmalloc(&job_desc_ptr->out, &uint32_tmp, buffer);
+	safe_unpackstr_xmalloc(&job_desc_ptr->std_err, &uint32_tmp, buffer);
+	safe_unpackstr_xmalloc(&job_desc_ptr->std_in, &uint32_tmp, buffer);
+	safe_unpackstr_xmalloc(&job_desc_ptr->std_out, &uint32_tmp, buffer);
 	safe_unpackstr_xmalloc(&job_desc_ptr->work_dir, &uint32_tmp, buffer);
 	safe_unpackstr_xmalloc(&job_desc_ptr->ckpt_dir, &uint32_tmp, buffer);
 
@@ -4582,9 +4582,9 @@ _pack_batch_job_launch_msg(batch_job_launch_msg_t * msg, Buf buffer)
 	packstr(msg->ckpt_dir, buffer);
 	packstr(msg->restart_dir, buffer);
 
-	packstr(msg->err, buffer);
-	packstr(msg->in, buffer);
-	packstr(msg->out, buffer);
+	packstr(msg->std_err, buffer);
+	packstr(msg->std_in, buffer);
+	packstr(msg->std_out, buffer);
 
 	pack32(msg->argc, buffer);
 	packstr_array(msg->argv, msg->argc, buffer);
@@ -4641,11 +4641,12 @@ _unpack_batch_job_launch_msg(batch_job_launch_msg_t ** msg, Buf buffer)
 	safe_unpackstr_xmalloc(&launch_msg_ptr->script,   &uint32_tmp, buffer);
 	safe_unpackstr_xmalloc(&launch_msg_ptr->work_dir, &uint32_tmp, buffer);
 	safe_unpackstr_xmalloc(&launch_msg_ptr->ckpt_dir, &uint32_tmp, buffer);
-	safe_unpackstr_xmalloc(&launch_msg_ptr->restart_dir, &uint32_tmp, buffer);
+	safe_unpackstr_xmalloc(&launch_msg_ptr->restart_dir,
+			       &uint32_tmp, buffer);
 
-	safe_unpackstr_xmalloc(&launch_msg_ptr->err, &uint32_tmp, buffer);
-	safe_unpackstr_xmalloc(&launch_msg_ptr->in,  &uint32_tmp, buffer);
-	safe_unpackstr_xmalloc(&launch_msg_ptr->out, &uint32_tmp, buffer);
+	safe_unpackstr_xmalloc(&launch_msg_ptr->std_err, &uint32_tmp, buffer);
+	safe_unpackstr_xmalloc(&launch_msg_ptr->std_in,  &uint32_tmp, buffer);
+	safe_unpackstr_xmalloc(&launch_msg_ptr->std_out, &uint32_tmp, buffer);
 
 	safe_unpack32(&launch_msg_ptr->argc, buffer);
 	safe_unpackstr_array(&launch_msg_ptr->argv,
diff --git a/src/sbatch/sbatch.c b/src/sbatch/sbatch.c
index a9a42e80b92..411a24b65c0 100644
--- a/src/sbatch/sbatch.c
+++ b/src/sbatch/sbatch.c
@@ -317,9 +317,9 @@ static int fill_job_desc_from_opts(job_desc_msg_t *desc)
 	desc->env_size = envcount (desc->environment);
 	desc->argv = opt.script_argv;
 	desc->argc = opt.script_argc;
-	desc->err  = opt.efname;
-	desc->in   = opt.ifname;
-	desc->out  = opt.ofname;
+	desc->std_err  = opt.efname;
+	desc->std_in   = opt.ifname;
+	desc->std_out  = opt.ofname;
 	desc->work_dir = opt.cwd;
 	if (opt.requeue != NO_VAL)
 		desc->requeue = opt.requeue;
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index f65799f3de4..303c3c445e3 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -257,16 +257,16 @@ void delete_job_details(struct job_record *job_entry)
 	for (i=0; i<job_entry->details->env_cnt; i++)
 		xfree(job_entry->details->env_sup[i]);
 	xfree(job_entry->details->env_sup);
-	xfree(job_entry->details->err);
+	xfree(job_entry->details->std_err);
 	FREE_NULL_BITMAP(job_entry->details->exc_node_bitmap);
 	xfree(job_entry->details->exc_nodes);
 	if (job_entry->details->feature_list)
 		list_destroy(job_entry->details->feature_list);
 	xfree(job_entry->details->features);
-	xfree(job_entry->details->in);
+	xfree(job_entry->details->std_in);
 	xfree(job_entry->details->mc_ptr);
 	xfree(job_entry->details->mem_bind);
-	xfree(job_entry->details->out);
+	xfree(job_entry->details->std_out);
 	FREE_NULL_BITMAP(job_entry->details->req_node_bitmap);
 	xfree(job_entry->details->req_node_layout);
 	xfree(job_entry->details->req_nodes);
@@ -1157,9 +1157,9 @@ void _dump_job_details(struct job_details *detail_ptr, Buf buffer)
 	packstr(detail_ptr->features,   buffer);
 	packstr(detail_ptr->dependency, buffer);
 
-	packstr(detail_ptr->err,       buffer);
-	packstr(detail_ptr->in,        buffer);
-	packstr(detail_ptr->out,       buffer);
+	packstr(detail_ptr->std_err,       buffer);
+	packstr(detail_ptr->std_in,        buffer);
+	packstr(detail_ptr->std_out,       buffer);
 	packstr(detail_ptr->work_dir,  buffer);
 	packstr(detail_ptr->ckpt_dir,  buffer);
 	packstr(detail_ptr->restart_dir, buffer);
@@ -1258,15 +1258,15 @@ static int _load_job_details(struct job_record *job_ptr, Buf buffer)
 	xfree(job_ptr->details->argv);
 	xfree(job_ptr->details->cpu_bind);
 	xfree(job_ptr->details->dependency);
-	xfree(job_ptr->details->err);
+	xfree(job_ptr->details->std_err);
 	for (i=0; i<job_ptr->details->env_cnt; i++)
 		xfree(job_ptr->details->env_sup[i]);
 	xfree(job_ptr->details->env_sup);
 	xfree(job_ptr->details->exc_nodes);
 	xfree(job_ptr->details->features);
-	xfree(job_ptr->details->in);
+	xfree(job_ptr->details->std_in);
 	xfree(job_ptr->details->mem_bind);
-	xfree(job_ptr->details->out);
+	xfree(job_ptr->details->std_out);
 	xfree(job_ptr->details->req_nodes);
 	xfree(job_ptr->details->work_dir);
 	xfree(job_ptr->details->ckpt_dir);
@@ -1284,10 +1284,10 @@ static int _load_job_details(struct job_record *job_ptr, Buf buffer)
 	job_ptr->details->dependency = dependency;
 	job_ptr->details->env_cnt = env_cnt;
 	job_ptr->details->env_sup = env_sup;
-	job_ptr->details->err = err;
+	job_ptr->details->std_err = err;
 	job_ptr->details->exc_nodes = exc_nodes;
 	job_ptr->details->features = features;
-	job_ptr->details->in = in;
+	job_ptr->details->std_in = in;
 	job_ptr->details->job_min_cpus = job_min_cpus;
 	job_ptr->details->job_min_memory = job_min_memory;
 	job_ptr->details->job_min_tmp_disk = job_min_tmp_disk;
@@ -1300,7 +1300,7 @@ static int _load_job_details(struct job_record *job_ptr, Buf buffer)
 	job_ptr->details->ntasks_per_node = ntasks_per_node;
 	job_ptr->details->num_tasks = num_tasks;
 	job_ptr->details->open_mode = open_mode;
-	job_ptr->details->out = out;
+	job_ptr->details->std_out = out;
 	job_ptr->details->overcommit = overcommit;
 	job_ptr->details->plane_size = plane_size;
 	job_ptr->details->prolog_running = prolog_running;
@@ -1748,8 +1748,8 @@ void dump_job_desc(job_desc_msg_t * job_specs)
 		       job_specs->spank_job_env[1],
 		       job_specs->spank_job_env[2]);
 
-	debug3("   in=%s out=%s err=%s",
-	       job_specs->in, job_specs->out, job_specs->err);
+	debug3("   stdin=%s stdout=%s stderr=%s",
+	       job_specs->std_in, job_specs->std_out, job_specs->std_err);
 
 	debug3("   work_dir=%s alloc_node:sid=%s:%u",
 	       job_specs->work_dir,
@@ -2829,9 +2829,9 @@ static int _validate_job_create_req(job_desc_msg_t * job_desc)
 		     strlen(job_desc->dependency));
 		return ESLURM_PATHNAME_TOO_LONG;
 	}
-	if (job_desc->err && (strlen(job_desc->err) > MAX_STR_LEN)) {
+	if (job_desc->std_err && (strlen(job_desc->std_err) > MAX_STR_LEN)) {
 		info("_validate_job_create_req: strlen(err) too big (%d)",
-		     strlen(job_desc->err));
+		     strlen(job_desc->std_err));
 		return ESLURM_PATHNAME_TOO_LONG;
 	}
 	if (job_desc->features && (strlen(job_desc->features) > MAX_STR_LEN)) {
@@ -2839,9 +2839,9 @@ static int _validate_job_create_req(job_desc_msg_t * job_desc)
 		     strlen(job_desc->features));
 		return ESLURM_PATHNAME_TOO_LONG;
 	}
-	if (job_desc->in && (strlen(job_desc->in) > MAX_STR_LEN)) {
+	if (job_desc->std_in && (strlen(job_desc->std_in) > MAX_STR_LEN)) {
 		info("_validate_job_create_req: strlen(in) too big (%d)",
-		     strlen(job_desc->in));
+		     strlen(job_desc->std_in));
 		return ESLURM_PATHNAME_TOO_LONG;
 	}
 	if (job_desc->linuximage && 
@@ -2876,9 +2876,9 @@ static int _validate_job_create_req(job_desc_msg_t * job_desc)
 		     strlen(job_desc->network));
 		return ESLURM_PATHNAME_TOO_LONG;
 	}
-	if (job_desc->out && (strlen(job_desc->out) > MAX_STR_LEN)) {
+	if (job_desc->std_out && (strlen(job_desc->std_out) > MAX_STR_LEN)) {
 		info("_validate_job_create_req: strlen(out) too big (%d)",
-		     strlen(job_desc->out));
+		     strlen(job_desc->std_out));
 		return ESLURM_PATHNAME_TOO_LONG;
 	}
 	if (job_desc->partition && (strlen(job_desc->partition) > MAX_STR_LEN)) {
@@ -3475,12 +3475,12 @@ _copy_job_desc_to_job_record(job_desc_msg_t * job_desc,
 		detail_ptr->job_min_tmp_disk = job_desc->job_min_tmp_disk;
 	if (job_desc->num_tasks != NO_VAL)
 		detail_ptr->num_tasks = job_desc->num_tasks;
-	if (job_desc->err)
-		detail_ptr->err = xstrdup(job_desc->err);
-	if (job_desc->in)
-		detail_ptr->in = xstrdup(job_desc->in);
-	if (job_desc->out)
-		detail_ptr->out = xstrdup(job_desc->out);
+	if (job_desc->std_err)
+		detail_ptr->std_err = xstrdup(job_desc->std_err);
+	if (job_desc->std_in)
+		detail_ptr->std_in = xstrdup(job_desc->std_in);
+	if (job_desc->std_out)
+		detail_ptr->std_out = xstrdup(job_desc->std_out);
 	if (job_desc->work_dir)
 		detail_ptr->work_dir = xstrdup(job_desc->work_dir);
 	if (job_desc->begin_time > time(NULL))
@@ -7644,12 +7644,12 @@ _copy_job_record_to_job_desc(struct job_record *job_ptr)
 	job_desc->dependency        = xstrdup(details->dependency);
 	job_desc->environment       = get_job_env(job_ptr, 
 						  &job_desc->env_size);
-	job_desc->err               = xstrdup(details->err);
+	job_desc->std_err           = xstrdup(details->std_err);
 	job_desc->exc_nodes         = xstrdup(details->exc_nodes);
 	job_desc->features          = xstrdup(details->features);
 	job_desc->group_id          = job_ptr->group_id;
 	job_desc->immediate         = 0; /* nowhere to get this value */
-	job_desc->in                = xstrdup(details->in);
+	job_desc->std_in            = xstrdup(details->std_in);
 	job_desc->job_id            = job_ptr->job_id; /* XXX */
 	job_desc->kill_on_node_fail = job_ptr->kill_on_node_fail;
 	job_desc->licenses          = xstrdup(job_ptr->licenses);
@@ -7663,7 +7663,7 @@ _copy_job_record_to_job_desc(struct job_record *job_ptr)
 	job_desc->num_tasks         = details->num_tasks;
 	job_desc->open_mode         = details->open_mode;
 	job_desc->other_port        = job_ptr->other_port; 
-	job_desc->out               = xstrdup(details->out);
+	job_desc->std_out           = xstrdup(details->std_out);
 	job_desc->overcommit        = details->overcommit;
 	job_desc->partition         = xstrdup(job_ptr->partition);
 	job_desc->plane_size        = details->plane_size;
diff --git a/src/slurmctld/job_scheduler.c b/src/slurmctld/job_scheduler.c
index f3e7d9e99d7..3e840681c97 100644
--- a/src/slurmctld/job_scheduler.c
+++ b/src/slurmctld/job_scheduler.c
@@ -559,9 +559,9 @@ extern void launch_job(struct job_record *job_ptr)
 		return;
 	}
 
-	launch_msg_ptr->err = xstrdup(job_ptr->details->err);
-	launch_msg_ptr->in = xstrdup(job_ptr->details->in);
-	launch_msg_ptr->out = xstrdup(job_ptr->details->out);
+	launch_msg_ptr->std_err = xstrdup(job_ptr->details->std_err);
+	launch_msg_ptr->std_in = xstrdup(job_ptr->details->std_in);
+	launch_msg_ptr->std_out = xstrdup(job_ptr->details->std_out);
 	launch_msg_ptr->work_dir = xstrdup(job_ptr->details->work_dir);
 	launch_msg_ptr->ckpt_dir = xstrdup(job_ptr->details->ckpt_dir);
 	launch_msg_ptr->restart_dir = xstrdup(job_ptr->details->restart_dir);
diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index d9da76dd3f9..29a72322765 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -3247,9 +3247,9 @@ int _launch_batch_step(job_desc_msg_t *job_desc_msg, uid_t uid,
 		return SLURM_ERROR;
 	}
 
-	launch_msg_ptr->err = xstrdup(job_desc_msg->err);
-	launch_msg_ptr->in = xstrdup(job_desc_msg->in);
-	launch_msg_ptr->out = xstrdup(job_desc_msg->out);
+	launch_msg_ptr->std_err = xstrdup(job_desc_msg->std_err);
+	launch_msg_ptr->std_in = xstrdup(job_desc_msg->std_in);
+	launch_msg_ptr->std_out = xstrdup(job_desc_msg->std_out);
 	launch_msg_ptr->acctg_freq = job_desc_msg->acctg_freq;
 	launch_msg_ptr->open_mode = job_desc_msg->open_mode;
 	launch_msg_ptr->work_dir = xstrdup(job_desc_msg->work_dir);
diff --git a/src/slurmctld/slurmctld.h b/src/slurmctld/slurmctld.h
index 71d6a7fe705..053c87e9e95 100644
--- a/src/slurmctld/slurmctld.h
+++ b/src/slurmctld/slurmctld.h
@@ -312,13 +312,11 @@ struct job_details {
 	uint16_t env_cnt;		/* size of env_sup (see below) */
 	char **env_sup;			/* supplemental environment variables
 					 * as set by Moab */
-	char *err;			/* pathname of job's stderr file */
 	bitstr_t *exc_node_bitmap;	/* bitmap of excluded nodes */
 	char *exc_nodes;		/* excluded nodes */
 	List feature_list;		/* required features with 
 					 * node counts */
 	char *features;			/* required features */
-	char *in;			/* pathname of job's stdin file */
 	/* job constraints: */
 	uint32_t job_min_cpus;		/* minimum processors per node */
 	uint32_t job_min_memory;	/* minimum memory per node (MB) OR
@@ -336,7 +334,6 @@ struct job_details {
 	uint16_t ntasks_per_node;	/* number of tasks on each node */
 	uint32_t num_tasks;		/* number of tasks to start */
 	uint8_t open_mode;		/* stdout/err append or trunctate */
-	char *out;			/* pathname of job's stdout file */
 	uint8_t overcommit;		/* processors being over subscribed */
 	uint16_t plane_size;		/* plane size when task_dist =
 					 * SLURM_DIST_PLANE */
@@ -354,6 +351,9 @@ struct job_details {
 					 * 0 if job cannot share nodes,
 					 * any other value accepts the default
 					 * sharing policy. */
+	char *std_err;			/* pathname of job's stderr file */
+	char *std_in;			/* pathname of job's stdin file */
+	char *std_out;			/* pathname of job's stdout file */
 	time_t submit_time;		/* time of submission */
 	uint16_t task_dist;		/* task layout for this job. Only
 					 * useful when Consumable Resources
diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index 1d91494bff2..ef1fe47216c 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -929,10 +929,11 @@ _prolog_error(batch_job_launch_msg_t *req, int rc)
 	char *err_name_ptr, err_name[128], path_name[MAXPATHLEN];
 	int fd;
 
-	if (req->err)
-		err_name_ptr = req->err;
+	if (req->std_err)
+		err_name_ptr = req->std_err;
 	else {
-		snprintf(err_name, sizeof(err_name), "slurm-%u.err", req->job_id);
+		snprintf(err_name, sizeof(err_name), "slurm-%u.err",
+			 req->job_id);
 		err_name_ptr = err_name;
 	}
 	if (err_name_ptr[0] == '/')
diff --git a/src/slurmd/slurmstepd/slurmstepd_job.c b/src/slurmd/slurmstepd/slurmstepd_job.c
index 06c73a5aecb..360522e2fe6 100644
--- a/src/slurmd/slurmstepd/slurmstepd_job.c
+++ b/src/slurmd/slurmstepd/slurmstepd_job.c
@@ -388,18 +388,18 @@ job_batch_job_create(batch_job_launch_msg_t *msg)
 
 	job->task = (slurmd_task_info_t **)
 		xmalloc(sizeof(slurmd_task_info_t *));
-	if (msg->err == NULL)
-		msg->err = xstrdup(msg->out);
+	if (msg->std_err == NULL)
+		msg->std_err = xstrdup(msg->std_out);
 
-	if (msg->in == NULL)
+	if (msg->std_in == NULL)
 		in_name = xstrdup("/dev/null");
 	else 
-		in_name = fname_create(job, msg->in, 0);
+		in_name = fname_create(job, msg->std_in, 0);
 
 	job->task[0] = task_info_create(0, 0,
 					in_name,
-					_batchfilename(job, msg->out),
-					_batchfilename(job, msg->err));
+					_batchfilename(job, msg->std_out),
+					_batchfilename(job, msg->std_err));
 	job->task[0]->argc = job->argc;
 	job->task[0]->argv = job->argv;
 
-- 
GitLab