Przeglądaj źródła

qdevice: Make sure qdevice exists on corosync exit

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Jan Friesse 9 lat temu
rodzic
commit
d3059b855d

+ 1 - 2
qdevices/qdevice-model-net.c

@@ -223,8 +223,7 @@ qdevice_model_net_run(struct qdevice_instance *instance)
 			    " Can't update cast vote timer vote");
 		}
 
-		if (net_instance->disconnect_reason == QDEVICE_NET_DISCONNECT_REASON_COROSYNC_CONNECTION_CLOSED ||
-		    net_instance->disconnect_reason == QDEVICE_NET_DISCONNECT_REASON_LOCAL_SOCKET_CLOSED) {
+		if (qdevice_net_disconnect_reason_force_disconnect(net_instance->disconnect_reason)) {
 			try_connect = 0;
 		}
 

+ 7 - 0
qdevices/qdevice-net-disconnect-reason.h

@@ -109,6 +109,13 @@ enum qdevice_net_disconnect_reason {
     reason == QDEVICE_NET_DISCONNECT_REASON_CANT_CONNECT_TO_THE_SERVER ||	\
     reason == QDEVICE_NET_DISCONNECT_REASON_ALGO_ECHO_REPLY_NOT_RECEIVED_ERR)
 
+#define qdevice_net_disconnect_reason_force_disconnect(reason)	(			\
+    reason == QDEVICE_NET_DISCONNECT_REASON_COROSYNC_CONNECTION_CLOSED ||		\
+    reason == QDEVICE_NET_DISCONNECT_REASON_LOCAL_SOCKET_CLOSED ||			\
+    reason == QDEVICE_NET_DISCONNECT_REASON_CANT_SCHEDULE_VOTING_TIMER ||		\
+    reason == QDEVICE_NET_DISCONNECT_REASON_CANT_REGISTER_VOTEQUORUM_CALLBACK ||	\
+    reason == QDEVICE_NET_DISCONNECT_REASON_CANT_REGISTER_CMAP_CALLBACK)
+
 #ifdef __cplusplus
 }
 #endif