From dd69627a6efbb40de7f1391a9202cf0a424b3df0 Mon Sep 17 00:00:00 2001
From: Danny Auble <da@schedmd.com>
Date: Tue, 25 Jun 2013 14:33:18 -0700
Subject: [PATCH] Fix for handling node counts that are 1 but the requested
 ntasks-per-node is larger than the number of tasks spread across the node.

---
 src/api/job_info.c   | 3 ++-
 src/squeue/print.c   | 2 ++
 src/sview/job_info.c | 2 ++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/api/job_info.c b/src/api/job_info.c
index dbf9ddac3cc..d916a5209fe 100644
--- a/src/api/job_info.c
+++ b/src/api/job_info.c
@@ -489,9 +489,10 @@ line6:
 			min_nodes = (num_tasks + 1) / job_ptr->ntasks_per_node;
 			if (min_nodes > num_tasks)
 				min_nodes = num_tasks;
+			else if (!min_nodes)
+				min_nodes = 1;
 		}
 		max_nodes = job_ptr->max_nodes;
-
 	}
 
 	_sprint_range(tmp1, sizeof(tmp1), job_ptr->num_cpus, job_ptr->max_cpus);
diff --git a/src/squeue/print.c b/src/squeue/print.c
index 9b8d8fc14d1..824a6f3c6b0 100644
--- a/src/squeue/print.c
+++ b/src/squeue/print.c
@@ -880,6 +880,8 @@ static int _get_node_cnt(job_info_t * job)
 			node_cnt = (num_tasks + 1) / job->ntasks_per_node;
 			if (node_cnt > num_tasks)
 				node_cnt = num_tasks;
+			else if (!node_cnt)
+				node_cnt = 1;
 		} else {
 			int round = job->num_cpus + params.max_cpus - 1;
 			round /= params.max_cpus;	/* round up */
diff --git a/src/sview/job_info.c b/src/sview/job_info.c
index 78367cc1134..2513e798d1d 100644
--- a/src/sview/job_info.c
+++ b/src/sview/job_info.c
@@ -1236,6 +1236,8 @@ static int _get_node_cnt(job_info_t * job)
 			node_cnt = (num_tasks + 1) / job->ntasks_per_node;
 			if (node_cnt > num_tasks)
 				node_cnt = num_tasks;
+			else if (!node_cnt)
+				node_cnt = 1;
 		} else if (sview_max_cpus) {
 			int round  = job->num_cpus + sview_max_cpus - 1;
 			round /= sview_max_cpus;	/* round up */
-- 
GitLab