drbd_state
extern int drbd_send_state(struct drbd_peer_device *, union drbd_state s);
union drbd_state os;
union drbd_state ns;
static inline union drbd_state drbd_read_state(struct drbd_device *device)
union drbd_state rv;
extern int drbd_send_state_req(struct drbd_peer_device *, union drbd_state, union drbd_state);
extern int conn_send_state_req(struct drbd_connection *, union drbd_state, union drbd_state);
union drbd_state new_state_tmp;
int drbd_send_state_req(struct drbd_peer_device *peer_device, union drbd_state mask, union drbd_state val)
int conn_send_state_req(struct drbd_connection *connection, union drbd_state mask, union drbd_state val)
int drbd_send_state(struct drbd_peer_device *peer_device, union drbd_state state)
union drbd_state ns, os;
union drbd_state mask, union drbd_state val)
union drbd_state mask = { };
union drbd_state val = { };
(union drbd_state) { { .susp_fen = 1 } },
(union drbd_state) { { .susp_fen = 0 } },
union drbd_state mask, val;
static union drbd_state convert_state(union drbd_state ps)
union drbd_state ms;
union drbd_state mask, val;
union drbd_state mask, val;
union drbd_state os, ns, peer_state;
is_valid_transition(union drbd_state os, union drbd_state ns)
static union drbd_state sanitize_state(struct drbd_device *device, union drbd_state os,
union drbd_state ns, enum sanitize_state_warnings *warn)
_drbd_set_state(struct drbd_device *device, union drbd_state ns,
union drbd_state os;
static void after_state_ch(struct drbd_device *device, union drbd_state os,
union drbd_state ns, enum chg_state_flags flags,
(union drbd_state) { { .susp_nod = 1 } },
(union drbd_state) { { .susp_nod = 0 } },
(union drbd_state) { { .susp_fen = 1 } },
(union drbd_state) { { .susp_fen = 0 } },
union drbd_state ns_min;
union drbd_state ns_max; /* new, max state, over all devices */
union drbd_state ns_max = acscw->ns_max;
(union drbd_state) { { .susp_fen = 1 } },
(union drbd_state) { { .susp_fen = 0 } },
static void conn_old_common_state(struct drbd_connection *connection, union drbd_state *pcs, enum chg_state_flags *pf)
conn_is_valid_transition(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
union drbd_state ns, os;
conn_set_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
union drbd_state *pns_min, union drbd_state *pns_max, enum chg_state_flags flags)
union drbd_state ns, os, ns_max = { };
union drbd_state ns_min = {
ns_min = ns_max = (union drbd_state) { {
_conn_rq_cond(struct drbd_connection *connection, union drbd_state mask, union drbd_state val)
_conn_request_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
union drbd_state ns_max, ns_min, os;
conn_request_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
union drbd_state os;
union drbd_state ns;
static void after_state_ch(struct drbd_device *device, union drbd_state os,
union drbd_state ns, enum chg_state_flags flags,
static enum drbd_state_rv is_valid_state(struct drbd_device *, union drbd_state);
static enum drbd_state_rv is_valid_soft_transition(union drbd_state, union drbd_state, struct drbd_connection *);
static enum drbd_state_rv is_valid_transition(union drbd_state os, union drbd_state ns);
static union drbd_state sanitize_state(struct drbd_device *device, union drbd_state os,
union drbd_state ns, enum sanitize_state_warnings *warn);
static inline bool is_susp(union drbd_state s)
union drbd_state os, union drbd_state ns)
static union drbd_state
apply_mask_val(union drbd_state os, union drbd_state mask, union drbd_state val)
union drbd_state ns;
union drbd_state mask, union drbd_state val)
union drbd_state ns;
union drbd_state mask, union drbd_state val)
_req_st_cond(struct drbd_device *device, union drbd_state mask,
union drbd_state val)
union drbd_state os, ns;
drbd_req_state(struct drbd_device *device, union drbd_state mask,
union drbd_state val, enum chg_state_flags f)
union drbd_state os, ns;
_drbd_request_state(struct drbd_device *device, union drbd_state mask,
union drbd_state val, enum chg_state_flags f)
_drbd_request_state_holding_state_mutex(struct drbd_device *device, union drbd_state mask,
union drbd_state val, enum chg_state_flags f)
static void print_st(struct drbd_device *device, const char *name, union drbd_state ns)
void print_st_err(struct drbd_device *device, union drbd_state os,
union drbd_state ns, enum drbd_state_rv err)
static long print_state_change(char *pb, union drbd_state os, union drbd_state ns,
static void drbd_pr_state_change(struct drbd_device *device, union drbd_state os, union drbd_state ns,
static void conn_pr_state_change(struct drbd_connection *connection, union drbd_state os, union drbd_state ns,
is_valid_state(struct drbd_device *device, union drbd_state ns)
is_valid_soft_transition(union drbd_state os, union drbd_state ns, struct drbd_connection *connection)
union drbd_state mask,
union drbd_state val);
extern void drbd_force_state(struct drbd_device *, union drbd_state,
union drbd_state);
union drbd_state,
union drbd_state,
_drbd_request_state_holding_state_mutex(struct drbd_device *, union drbd_state,
union drbd_state, enum chg_state_flags);
extern enum drbd_state_rv _drbd_set_state(struct drbd_device *, union drbd_state,
extern void print_st_err(struct drbd_device *, union drbd_state,
union drbd_state, enum drbd_state_rv);
_conn_request_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
conn_request_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
union drbd_state mask,
union drbd_state val)
({ union drbd_state mask; mask.i = 0; mask.T = T##_MASK; mask; }), \
({ union drbd_state val; val.i = 0; val.T = (S); val; })
({ union drbd_state mask; mask.i = 0; mask.T1 = T1##_MASK; \
({ union drbd_state val; val.i = 0; val.T1 = (S1); \
({ union drbd_state mask; mask.i = 0; mask.T1 = T1##_MASK; \
({ union drbd_state val; val.i = 0; val.T1 = (S1); \
D, ({ union drbd_state __ns; __ns = drbd_read_state(D); __ns.T = (S); __ns; })
D, ({ union drbd_state __ns; __ns = drbd_read_state(D); __ns.T1 = (S1); \
D, ({ union drbd_state __ns; __ns = drbd_read_state(D); __ns.T1 = (S1); \
union drbd_state ns;
union drbd_state os, ns;