Jelajahi Sumber

votequorum: fix handling of expected_votes/votes changes from cmapctl

and allow natural selection to take place....

Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
Fabio M. Di Nitto 13 tahun lalu
induk
melakukan
ed63c812af
1 mengubah file dengan 13 tambahan dan 0 penghapusan
  1. 13 0
      exec/votequorum.c

+ 13 - 0
exec/votequorum.c

@@ -1174,8 +1174,13 @@ static void votequorum_refresh_config(
 	struct icmap_notify_value old_val,
 	struct icmap_notify_value old_val,
 	void *user_data)
 	void *user_data)
 {
 {
+	int old_votes, old_expected_votes;
+
 	ENTER();
 	ENTER();
 
 
+	old_votes = us->votes;
+	old_expected_votes = us->expected_votes;
+
 	/*
 	/*
 	 * Reload the configuration
 	 * Reload the configuration
 	 */
 	 */
@@ -1186,6 +1191,14 @@ static void votequorum_refresh_config(
 	 */
 	 */
 	votequorum_exec_send_nodeinfo(us->node_id);
 	votequorum_exec_send_nodeinfo(us->node_id);
 	votequorum_exec_send_nodeinfo(VOTEQUORUM_QDEVICE_NODEID);
 	votequorum_exec_send_nodeinfo(VOTEQUORUM_QDEVICE_NODEID);
+	if (us->votes != old_votes) {
+		votequorum_exec_send_reconfigure(VOTEQUORUM_RECONFIG_PARAM_NODE_VOTES,
+						 us->node_id, us->votes);
+	}
+	if (us->expected_votes != old_expected_votes) {
+		votequorum_exec_send_reconfigure(VOTEQUORUM_RECONFIG_PARAM_EXPECTED_VOTES,
+						 us->node_id, us->expected_votes);
+	}
 
 
 	LEAVE();
 	LEAVE();
 }
 }