1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 #ifndef DRBD_STATE_CHANGE_H 3 #define DRBD_STATE_CHANGE_H 4 5 struct drbd_resource_state_change { 6 struct drbd_resource *resource; 7 enum drbd_role role[2]; 8 bool susp[2]; 9 bool susp_nod[2]; 10 bool susp_fen[2]; 11 }; 12 13 struct drbd_device_state_change { 14 struct drbd_device *device; 15 enum drbd_disk_state disk_state[2]; 16 }; 17 18 struct drbd_connection_state_change { 19 struct drbd_connection *connection; 20 enum drbd_conns cstate[2]; /* drbd9: enum drbd_conn_state */ 21 enum drbd_role peer_role[2]; 22 }; 23 24 struct drbd_peer_device_state_change { 25 struct drbd_peer_device *peer_device; 26 enum drbd_disk_state disk_state[2]; 27 enum drbd_conns repl_state[2]; /* drbd9: enum drbd_repl_state */ 28 bool resync_susp_user[2]; 29 bool resync_susp_peer[2]; 30 bool resync_susp_dependency[2]; 31 }; 32 33 struct drbd_state_change { 34 struct list_head list; 35 unsigned int n_devices; 36 unsigned int n_connections; 37 struct drbd_resource_state_change resource[1]; 38 struct drbd_device_state_change *devices; 39 struct drbd_connection_state_change *connections; 40 struct drbd_peer_device_state_change *peer_devices; 41 }; 42 43 extern struct drbd_state_change *remember_old_state(struct drbd_resource *, gfp_t); 44 extern void copy_old_to_new_state_change(struct drbd_state_change *); 45 extern void forget_state_change(struct drbd_state_change *); 46 47 extern int notify_resource_state_change(struct sk_buff *, 48 unsigned int, 49 struct drbd_resource_state_change *, 50 enum drbd_notification_type type); 51 extern int notify_connection_state_change(struct sk_buff *, 52 unsigned int, 53 struct drbd_connection_state_change *, 54 enum drbd_notification_type type); 55 extern int notify_device_state_change(struct sk_buff *, 56 unsigned int, 57 struct drbd_device_state_change *, 58 enum drbd_notification_type type); 59 extern int notify_peer_device_state_change(struct sk_buff *, 60 unsigned int, 61 struct drbd_peer_device_state_change *, 62 enum drbd_notification_type type); 63 64 #endif /* DRBD_STATE_CHANGE_H */ 65