drbd_state_change.h (2035B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef DRBD_STATE_CHANGE_H 3#define DRBD_STATE_CHANGE_H 4 5struct 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 13struct drbd_device_state_change { 14 struct drbd_device *device; 15 enum drbd_disk_state disk_state[2]; 16}; 17 18struct 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 24struct 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 33struct 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 43extern struct drbd_state_change *remember_old_state(struct drbd_resource *, gfp_t); 44extern void copy_old_to_new_state_change(struct drbd_state_change *); 45extern void forget_state_change(struct drbd_state_change *); 46 47extern int notify_resource_state_change(struct sk_buff *, 48 unsigned int, 49 struct drbd_resource_state_change *, 50 enum drbd_notification_type type); 51extern int notify_connection_state_change(struct sk_buff *, 52 unsigned int, 53 struct drbd_connection_state_change *, 54 enum drbd_notification_type type); 55extern int notify_device_state_change(struct sk_buff *, 56 unsigned int, 57 struct drbd_device_state_change *, 58 enum drbd_notification_type type); 59extern 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 */