From dc16ec37b25c0fade5216b7fdeff852c74cee15b Mon Sep 17 00:00:00 2001
From: Michael Adam <obnox@redhat.com>
Date: Fri, 17 Feb 2017 15:28:26 +0100
Subject: [PATCH] Make Rebalance() a little easier to read.

Signed-off-by: Michael Adam <obnox@redhat.com>
---
 apps/glusterfs/allocator_simple_ring.go | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/apps/glusterfs/allocator_simple_ring.go b/apps/glusterfs/allocator_simple_ring.go
index 51abe83b..f2d25238 100644
--- a/apps/glusterfs/allocator_simple_ring.go
+++ b/apps/glusterfs/allocator_simple_ring.go
@@ -134,20 +134,26 @@ func (s *SimpleAllocatorRing) Rebalance() {
 	var device *SimpleDevice
 	for i := 0; len(zones) != 0; i++ {
 		zone := i % len(zones)
-		node := i % len(zones[zone])
+		nodes := zones[zone]
+		node := i % len(nodes)
+		devices := nodes[node]
 
 		// pop device
-		device, zones[zone][node] = zones[zone][node][len(zones[zone][node])-1], zones[zone][node][:len(zones[zone][node])-1]
+		device = devices[len(devices)-1]
+		devices = devices[:len(devices)-1]
+		nodes[node] = devices
+
 		list = append(list, *device)
 
-		// delete node
-		if len(zones[zone][node]) == 0 {
-			zones[zone] = append(zones[zone][:node], zones[zone][node+1:]...)
+		if len(devices) == 0 {
+			// delete node
+			nodes = append(nodes[:node], nodes[node+1:]...)
+			zones[zone] = nodes
+		}
 
+		if len(nodes) == 0 {
 			// delete zone
-			if len(zones[zone]) == 0 {
-				zones = append(zones[:zone], zones[zone+1:]...)
-			}
+			zones = append(zones[:zone], zones[zone+1:]...)
 		}
 	}
 
-- 
GitLab