From c39e34d007491dbb5be8f6c1fe48934c6aaebf49 Mon Sep 17 00:00:00 2001
From: antirez <antirez@gmail.com>
Date: Mon, 25 Mar 2013 15:01:25 +0100
Subject: [PATCH] Cluster: when slave changes master, remove it from the old
 master.

---
 src/cluster.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/cluster.c b/src/cluster.c
index 5728d580f..1147a742e 100644
--- a/src/cluster.c
+++ b/src/cluster.c
@@ -933,6 +933,8 @@ int clusterProcessPacket(clusterLink *link) {
 
                 /* Master node changed for this slave? */
                 if (sender->slaveof != master) {
+                    if (sender->slaveof)
+                        clusterNodeRemoveSlave(sender->slaveof,sender);
                     clusterNodeAddSlave(master,sender);
                     sender->slaveof = master;
                 }