  
  	/* set the weight and the flags */
  	atomic_set(&dest->weight, udest->weight);
-@@ -3265,6 +3283,136 @@ out:
+@@ -3265,6 +3282,131 @@ out:
  	return ret;
  }
  

+	/* Set up slow_start if weight has recently changed */
+	if (unlikely(dest->flags & IP_VS_DEST_F_WEIGHT_MASK)) {
+		__ip_vs_conn_set_slow_start(dest, svc);
+		dest->flags |= IP_VS_DEST_F_WEIGHT_MASK;
+		dest->flags ^= IP_VS_DEST_F_WEIGHT_MASK;
+	}
+
+	handicap = atomic_read(&dest->slow_start_data);

+
+#ifdef CONFIG_IP_VS_DEBUG
+	if (unlikely(!handicap))
+		IP_VS_DBG_BUF(1, "CONN slow_start_end: server %s:%u ",
+			IP_VS_DBG_ADDR(dest->af, &dest->addr),
+			ntohs(dest->port));
+#endif
+
+	return handicap >> atomic_read(&dest->slow_start_data2);
