From caf7e8c46dd1f1ddc41a946d6e99e3b9f4d9e163 Mon Sep 17 00:00:00 2001
From: Moe Jette <jette1@llnl.gov>
Date: Tue, 3 Jan 2006 21:05:38 +0000
Subject: [PATCH] svn merge -r6945:6950 
 https://eris.llnl.gov/svn/slurm/branches/slurm-0-6-branch

---
 NEWS              | 4 ++++
 src/sinfo/sinfo.c | 2 +-
 src/sinfo/sort.c  | 4 ++--
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/NEWS b/NEWS
index 34877ed97b8..a91dcc19410 100644
--- a/NEWS
+++ b/NEWS
@@ -100,6 +100,10 @@ documents those changes that are of interest to users and admins.
  -- Some infrastructure added for task launch controls (slurm.conf:
     TaskProlog, TaskEpilog, TaskPlugin; srun --task-prolog, --task-epilog).
 
+* Changes in SLURM 0.6.11
+=========================
+ -- Fix bug in sinfo partition sorting order.
+
 * Changes in SLURM 0.6.10
 =========================
  -- Fix for slurmd job termination logic (could hang in COMPLETING state).
diff --git a/src/sinfo/sinfo.c b/src/sinfo/sinfo.c
index 7770e1ff0f3..d7d93810d01 100644
--- a/src/sinfo/sinfo.c
+++ b/src/sinfo/sinfo.c
@@ -579,10 +579,10 @@ static void _create_sinfo(List sinfo_list, partition_info_t* part_ptr,
 		sinfo_ptr->reason   = node_ptr->reason;
 
 		sinfo_ptr->nodes = hostlist_create(node_ptr->name);
-
 		sinfo_ptr->part_inx = part_inx;
 	} else {
 		sinfo_ptr->nodes = hostlist_create("");
+		sinfo_ptr->part_inx = part_inx;
 	}
 
 	list_append(sinfo_list, sinfo_ptr);
diff --git a/src/sinfo/sort.c b/src/sinfo/sort.c
index 530781c610e..b90faf3fcf9 100644
--- a/src/sinfo/sort.c
+++ b/src/sinfo/sort.c
@@ -348,7 +348,7 @@ static int _sort_by_partition(void *void1, void *void2)
 	char *val1 = "", *val2 = "";
 
 	if (part_order) {
-		diff = sinfo1->part_inx - sinfo2->part_inx;
+		diff = (int)sinfo1->part_inx - (int)sinfo2->part_inx;
 	} else {
 		if (sinfo1->part_info && sinfo1->part_info->name)
 			val1 = sinfo1->part_info->name;
@@ -422,7 +422,7 @@ static int _sort_by_state(void *void1, void *void2)
 	sinfo_data_t *sinfo1 = (sinfo_data_t *) void1;
 	sinfo_data_t *sinfo2 = (sinfo_data_t *) void2;
 
-	diff = sinfo1->node_state - sinfo2->node_state;
+	diff = (int)sinfo1->node_state - (int)sinfo2->node_state;
 
 	if (reverse_order)
 		diff = -diff;
-- 
GitLab