| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef DRBD_STATE_CHANGE_H | |
| #define DRBD_STATE_CHANGE_H | |
| struct drbd_resource_state_change { | |
| struct drbd_resource *resource; | |
| enum drbd_role role[2]; | |
| bool susp[2]; | |
| bool susp_nod[2]; | |
| bool susp_fen[2]; | |
| }; | |
| struct drbd_device_state_change { | |
| struct drbd_device *device; | |
| enum drbd_disk_state disk_state[2]; | |
| }; | |
| struct drbd_connection_state_change { | |
| struct drbd_connection *connection; | |
| enum drbd_conns cstate[2]; /* drbd9: enum drbd_conn_state */ | |
| enum drbd_role peer_role[2]; | |
| }; | |
| struct drbd_peer_device_state_change { | |
| struct drbd_peer_device *peer_device; | |
| enum drbd_disk_state disk_state[2]; | |
| enum drbd_conns repl_state[2]; /* drbd9: enum drbd_repl_state */ | |
| bool resync_susp_user[2]; | |
| bool resync_susp_peer[2]; | |
| bool resync_susp_dependency[2]; | |
| }; | |
| struct drbd_state_change { | |
| struct list_head list; | |
| unsigned int n_devices; | |
| unsigned int n_connections; | |
| struct drbd_resource_state_change resource[1]; | |
| struct drbd_device_state_change *devices; | |
| struct drbd_connection_state_change *connections; | |
| struct drbd_peer_device_state_change *peer_devices; | |
| }; | |
| extern struct drbd_state_change *remember_old_state(struct drbd_resource *, gfp_t); | |
| extern void copy_old_to_new_state_change(struct drbd_state_change *); | |
| extern void forget_state_change(struct drbd_state_change *); | |
| extern void notify_resource_state_change(struct sk_buff *, | |
| unsigned int, | |
| struct drbd_resource_state_change *, | |
| enum drbd_notification_type type); | |
| extern void notify_connection_state_change(struct sk_buff *, | |
| unsigned int, | |
| struct drbd_connection_state_change *, | |
| enum drbd_notification_type type); | |
| extern void notify_device_state_change(struct sk_buff *, | |
| unsigned int, | |
| struct drbd_device_state_change *, | |
| enum drbd_notification_type type); | |
| extern void notify_peer_device_state_change(struct sk_buff *, | |
| unsigned int, | |
| struct drbd_peer_device_state_change *, | |
| enum drbd_notification_type type); | |
| #endif /* DRBD_STATE_CHANGE_H */ |