Commit da9fbc27 authored by Philipp Reisner's avatar Philipp Reisner
Browse files

drbd: Introduced a new type union drbd_dev_state

parent 8e0af25f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -935,7 +935,7 @@ struct drbd_conf {
	/* Used after attach while negotiating new disk state. */
	union drbd_state new_state_tmp;

	union drbd_state state;
	union drbd_dev_state state;
	wait_queue_head_t misc_wait;
	wait_queue_head_t state_wait;  /* upon each state change. */
	unsigned int send_cnt;
@@ -1689,7 +1689,7 @@ static inline union drbd_state drbd_read_state(struct drbd_conf *mdev)
{
	union drbd_state rv;

	rv = mdev->state;
	rv.i = mdev->state.i;
	rv.susp = mdev->tconn->susp;
	rv.susp_nod = mdev->tconn->susp_nod;
	rv.susp_fen = mdev->tconn->susp_fen;
@@ -2155,7 +2155,7 @@ static inline int drbd_get_max_buffers(struct drbd_conf *mdev)

static inline int drbd_state_is_stable(struct drbd_conf *mdev)
{
	union drbd_state s = mdev->state;
	union drbd_dev_state s = mdev->state;

	/* DO NOT add a default clause, we want the compiler to warn us
	 * for any newly introduced state we may have forgotten to add here */
+1 −4
Original line number Diff line number Diff line
@@ -1821,15 +1821,12 @@ static void drbd_set_defaults(struct drbd_conf *mdev)
{
	/* Beware! The actual layout differs
	 * between big endian and little endian */
	mdev->state = (union drbd_state) {
	mdev->state = (union drbd_dev_state) {
		{ .role = R_SECONDARY,
		  .peer = R_UNKNOWN,
		  .conn = C_STANDALONE,
		  .disk = D_DISKLESS,
		  .pdsk = D_UNKNOWN,
		  .susp = 0,
		  .susp_nod = 0,
		  .susp_fen = 0
		} };
}

+2 −2
Original line number Diff line number Diff line
@@ -1435,7 +1435,7 @@ int drbd_adm_attach(struct sk_buff *skb, struct genl_info *info)
		clear_bit(CRASHED_PRIMARY, &mdev->flags);

	if (drbd_md_test_flag(mdev->ldev, MDF_PRIMARY_IND) &&
	    !(mdev->state.role == R_PRIMARY && mdev->state.susp_nod)) {
	    !(mdev->state.role == R_PRIMARY && mdev->tconn->susp_nod)) {
		set_bit(CRASHED_PRIMARY, &mdev->flags);
		cp_discovered = 1;
	}
@@ -2348,7 +2348,7 @@ out:

int drbd_adm_resume_sync(struct sk_buff *skb, struct genl_info *info)
{
	union drbd_state s;
	union drbd_dev_state s;
	enum drbd_ret_code retcode;

	retcode = drbd_adm_prepare(skb, info, DRBD_ADM_NEED_MINOR);
+2 −2
Original line number Diff line number Diff line
@@ -295,7 +295,7 @@ static inline int req_mod(struct drbd_request *req,
	return rv;
}

static inline bool drbd_should_do_remote(union drbd_state s)
static inline bool drbd_should_do_remote(union drbd_dev_state s)
{
	return s.pdsk == D_UP_TO_DATE ||
		(s.pdsk >= D_INCONSISTENT &&
@@ -305,7 +305,7 @@ static inline bool drbd_should_do_remote(union drbd_state s)
	   That is equivalent since before 96 IO was frozen in the C_WF_BITMAP*
	   states. */
}
static inline bool drbd_should_send_out_of_sync(union drbd_state s)
static inline bool drbd_should_send_out_of_sync(union drbd_dev_state s)
{
	return s.conn == C_AHEAD || s.conn == C_WF_BITMAP_S;
	/* pdsk = D_INCONSISTENT as a consequence. Protocol 96 check not necessary
+3 −3
Original line number Diff line number Diff line
@@ -860,7 +860,7 @@ __drbd_set_state(struct drbd_conf *mdev, union drbd_state ns,
	    (os.disk != D_DISKLESS && ns.disk == D_DISKLESS))
		atomic_inc(&mdev->local_cnt);

	mdev->state = ns;
	mdev->state.i = ns.i;
	mdev->tconn->susp = ns.susp;
	mdev->tconn->susp_nod = ns.susp_nod;
	mdev->tconn->susp_fen = ns.susp_fen;
@@ -1393,7 +1393,7 @@ static int w_after_conn_state_ch(struct drbd_work *w, int unused)
void conn_old_common_state(struct drbd_tconn *tconn, union drbd_state *pcs, enum chg_state_flags *pf)
{
	enum chg_state_flags flags = ~0;
	union drbd_state os, cs = {}; /* old_state, common_state */
	union drbd_dev_state os, cs = {}; /* old_state, common_state */
	struct drbd_conf *mdev;
	int vnr, first_vol = 1;

@@ -1424,7 +1424,7 @@ void conn_old_common_state(struct drbd_tconn *tconn, union drbd_state *pcs, enum

	*pf |= CS_DC_MASK;
	*pf &= flags;
	*pcs = cs;
	(*pcs).i = cs.i;
}

static enum drbd_state_rv
Loading