Path: blob/master/drivers/block/drbd/drbd_state_change.h
26282 views
/* SPDX-License-Identifier: GPL-2.0-only */1#ifndef DRBD_STATE_CHANGE_H2#define DRBD_STATE_CHANGE_H34struct drbd_resource_state_change {5struct drbd_resource *resource;6enum drbd_role role[2];7bool susp[2];8bool susp_nod[2];9bool susp_fen[2];10};1112struct drbd_device_state_change {13struct drbd_device *device;14enum drbd_disk_state disk_state[2];15};1617struct drbd_connection_state_change {18struct drbd_connection *connection;19enum drbd_conns cstate[2]; /* drbd9: enum drbd_conn_state */20enum drbd_role peer_role[2];21};2223struct drbd_peer_device_state_change {24struct drbd_peer_device *peer_device;25enum drbd_disk_state disk_state[2];26enum drbd_conns repl_state[2]; /* drbd9: enum drbd_repl_state */27bool resync_susp_user[2];28bool resync_susp_peer[2];29bool resync_susp_dependency[2];30};3132struct drbd_state_change {33struct list_head list;34unsigned int n_devices;35unsigned int n_connections;36struct drbd_resource_state_change resource[1];37struct drbd_device_state_change *devices;38struct drbd_connection_state_change *connections;39struct drbd_peer_device_state_change *peer_devices;40};4142extern struct drbd_state_change *remember_old_state(struct drbd_resource *, gfp_t);43extern void copy_old_to_new_state_change(struct drbd_state_change *);44extern void forget_state_change(struct drbd_state_change *);4546extern int notify_resource_state_change(struct sk_buff *,47unsigned int,48void *,49enum drbd_notification_type type);50extern int notify_connection_state_change(struct sk_buff *,51unsigned int,52void *,53enum drbd_notification_type type);54extern int notify_device_state_change(struct sk_buff *,55unsigned int,56void *,57enum drbd_notification_type type);58extern int notify_peer_device_state_change(struct sk_buff *,59unsigned int,60void *,61enum drbd_notification_type type);6263#endif /* DRBD_STATE_CHANGE_H */646566