Lines Matching defs:os
25 union drbd_state os;
280 static void after_state_ch(struct drbd_device *device, union drbd_state os,
285 static enum drbd_state_rv is_valid_transition(union drbd_state os, union drbd_state ns);
286 static union drbd_state sanitize_state(struct drbd_device *device, union drbd_state os,
464 * @os: old (current) state.
468 union drbd_state os, union drbd_state ns)
470 return (os.conn >= C_CONNECTED && ns.conn >= C_CONNECTED &&
471 ((os.role != R_PRIMARY && ns.role == R_PRIMARY) ||
472 (os.conn != C_STARTING_SYNC_T && ns.conn == C_STARTING_SYNC_T) ||
473 (os.conn != C_STARTING_SYNC_S && ns.conn == C_STARTING_SYNC_S) ||
474 (os.disk != D_FAILED && ns.disk == D_FAILED))) ||
475 (os.conn >= C_CONNECTED && ns.conn == C_DISCONNECTING) ||
476 (os.conn == C_CONNECTED && ns.conn == C_VERIFY_S) ||
477 (os.conn == C_CONNECTED && ns.conn == C_WF_REPORT_PARAMS);
481 apply_mask_val(union drbd_state os, union drbd_state mask, union drbd_state val)
484 ns.i = (os.i & ~mask.i) | val.i;
520 union drbd_state os, ns;
531 os = drbd_read_state(device);
532 ns = sanitize_state(device, os, apply_mask_val(os, mask, val), NULL);
533 rv = is_valid_transition(os, ns);
537 if (!cl_wide_st_chg(device, os, ns))
542 rv = is_valid_soft_transition(os, ns, first_peer_device(device)->connection);
568 union drbd_state os, ns;
580 os = drbd_read_state(device);
581 ns = sanitize_state(device, os, apply_mask_val(os, mask, val), NULL);
582 rv = is_valid_transition(os, ns);
588 if (cl_wide_st_chg(device, os, ns)) {
591 rv = is_valid_soft_transition(os, ns, first_peer_device(device)->connection);
596 print_st_err(device, os, ns, rv);
603 print_st_err(device, os, ns, rv);
612 print_st_err(device, os, ns, rv);
733 void print_st_err(struct drbd_device *device, union drbd_state os,
739 print_st(device, " state", os);
743 static long print_state_change(char *pb, union drbd_state os, union drbd_state ns,
750 if (ns.role != os.role && flags & CS_DC_ROLE)
752 drbd_role_str(os.role),
754 if (ns.peer != os.peer && flags & CS_DC_PEER)
756 drbd_role_str(os.peer),
758 if (ns.conn != os.conn && flags & CS_DC_CONN)
760 drbd_conn_str(os.conn),
762 if (ns.disk != os.disk && flags & CS_DC_DISK)
764 drbd_disk_str(os.disk),
766 if (ns.pdsk != os.pdsk && flags & CS_DC_PDSK)
768 drbd_disk_str(os.pdsk),
774 static void drbd_pr_state_change(struct drbd_device *device, union drbd_state os, union drbd_state ns,
780 pbp += print_state_change(pbp, os, ns, flags ^ CS_DC_MASK);
782 if (ns.aftr_isp != os.aftr_isp)
784 os.aftr_isp,
786 if (ns.peer_isp != os.peer_isp)
788 os.peer_isp,
790 if (ns.user_isp != os.user_isp)
792 os.user_isp,
799 static void conn_pr_state_change(struct drbd_connection *connection, union drbd_state os, union drbd_state ns,
805 pbp += print_state_change(pbp, os, ns, flags);
807 if (is_susp(ns) != is_susp(os) && flags & CS_DC_SUSP)
809 is_susp(os),
907 * @os: old state.
912 is_valid_soft_transition(union drbd_state os, union drbd_state ns, struct drbd_connection *connection)
917 os.conn > C_CONNECTED)
920 if (ns.conn == C_DISCONNECTING && os.conn == C_STANDALONE)
923 if (ns.disk > D_ATTACHING && os.disk == D_DISKLESS)
926 if (ns.conn == C_WF_CONNECTION && os.conn < C_UNCONNECTED)
929 if (ns.disk == D_OUTDATED && os.disk < D_OUTDATED && os.disk != D_ATTACHING)
932 if (ns.conn == C_DISCONNECTING && os.conn == C_UNCONNECTED)
938 !((ns.conn == C_WF_REPORT_PARAMS && os.conn == C_WF_CONNECTION) ||
939 (ns.conn >= C_CONNECTED && os.conn == C_WF_REPORT_PARAMS)))
945 if (os.role != R_PRIMARY && ns.role == R_PRIMARY
948 && (ns.conn <= C_WF_SYNC_UUID || ns.conn != os.conn))
951 if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) && os.conn < C_CONNECTED)
955 ns.conn != os.conn && os.conn > C_CONNECTED)
959 os.conn < C_CONNECTED)
963 && os.conn < C_WF_REPORT_PARAMS)
967 os.conn < C_CONNECTED && os.pdsk > D_OUTDATED)
1011 * @os: old state.
1014 is_valid_transition(union drbd_state os, union drbd_state ns)
1018 rv = is_valid_conn_transition(os.conn, ns.conn);
1021 if (ns.disk == D_FAILED && os.disk == D_DISKLESS)
1045 * @os: old state.
1052 static union drbd_state sanitize_state(struct drbd_device *device, union drbd_state os,
1195 !(os.role == R_PRIMARY && os.conn < C_CONNECTED && os.pdsk > D_OUTDATED))
1200 !(os.role == R_PRIMARY && os.disk < D_UP_TO_DATE && os.pdsk < D_UP_TO_DATE))
1268 union drbd_state os;
1274 os = drbd_read_state(device);
1276 ns = sanitize_state(device, os, ns, &ssw);
1277 if (ns.i == os.i)
1280 rv = is_valid_transition(os, ns);
1293 if (is_valid_state(device, os) == rv)
1294 rv = is_valid_soft_transition(os, ns, connection);
1296 rv = is_valid_soft_transition(os, ns, connection);
1301 print_st_err(device, os, ns, rv);
1307 drbd_pr_state_change(device, os, ns, flags);
1313 conn_pr_state_change(connection, os, ns,
1320 if ((os.disk != D_FAILED && ns.disk == D_FAILED) ||
1321 (os.disk != D_DISKLESS && ns.disk == D_DISKLESS))
1324 if (!is_sync_state(os.conn) && is_sync_state(ns.conn))
1343 if (drbd_should_do_remote((union drbd_dev_state)os.i) !=
1347 if (os.disk == D_ATTACHING && ns.disk >= D_NEGOTIATING)
1351 if (os.conn == C_WF_REPORT_PARAMS && ns.conn != C_WF_REPORT_PARAMS &&
1363 if ((os.conn == C_VERIFY_S || os.conn == C_VERIFY_T) &&
1372 if ((os.conn == C_PAUSED_SYNC_T || os.conn == C_PAUSED_SYNC_S) &&
1381 if ((os.conn == C_SYNC_TARGET || os.conn == C_SYNC_SOURCE) &&
1387 if (os.conn == C_CONNECTED &&
1435 if (os.disk < D_CONSISTENT && ns.disk >= D_CONSISTENT)
1441 if (os.disk == D_INCONSISTENT && os.pdsk == D_INCONSISTENT &&
1442 os.peer == R_SECONDARY && ns.peer == R_PRIMARY)
1446 if (os.conn != C_DISCONNECTING && ns.conn == C_DISCONNECTING)
1450 if (os.conn != C_STANDALONE && ns.conn == C_STANDALONE)
1454 if (os.conn > C_WF_CONNECTION &&
1459 if (os.conn < C_CONNECTED && ns.conn >= C_CONNECTED) {
1467 if ((os.disk == D_ATTACHING || os.disk == D_NEGOTIATING) &&
1473 ascw->os = os;
1495 after_state_ch(device, ascw->os, ascw->ns, ascw->flags, ascw->state_change);
1681 static bool lost_contact_to_peer_data(enum drbd_disk_state os, enum drbd_disk_state ns)
1683 if ((os >= D_INCONSISTENT && os != D_UNKNOWN && os != D_OUTDATED)
1693 if (os == D_UNKNOWN
1703 * @os: old state.
1708 static void after_state_ch(struct drbd_device *device, union drbd_state os,
1720 sib.os = os;
1723 if ((os.disk != D_UP_TO_DATE || os.pdsk != D_UP_TO_DATE)
1733 if (!(os.role == R_PRIMARY && os.disk < D_UP_TO_DATE && os.pdsk < D_UP_TO_DATE) &&
1744 if (os.conn < C_CONNECTED && conn_lowest_conn(connection) >= C_CONNECTED)
1747 if ((os.disk == D_ATTACHING || os.disk == D_NEGOTIATING) &&
1792 if ((os.conn != C_SYNC_SOURCE && os.conn != C_PAUSED_SYNC_S) &&
1800 if (os.pdsk == D_DISKLESS &&
1815 if (os.conn != C_WF_BITMAP_S && ns.conn == C_WF_BITMAP_S &&
1822 if (lost_contact_to_peer_data(os.pdsk, ns.pdsk)) {
1838 if (os.peer != R_PRIMARY && ns.peer == R_PRIMARY &&
1844 if (os.peer == R_PRIMARY && ns.peer == R_SECONDARY)
1856 if (os.role == R_PRIMARY && ns.role == R_SECONDARY &&
1867 os.disk == D_ATTACHING && ns.disk == D_NEGOTIATING) {
1875 ((os.aftr_isp != ns.aftr_isp) ||
1876 (os.user_isp != ns.user_isp)))
1880 if ((!os.aftr_isp && !os.peer_isp && !os.user_isp) &&
1886 if (os.conn == C_WF_REPORT_PARAMS && ns.conn >= C_CONNECTED)
1889 if (os.conn != C_AHEAD && ns.conn == C_AHEAD)
1893 if ((os.conn != C_STARTING_SYNC_T && ns.conn == C_STARTING_SYNC_T) ||
1894 (os.conn != C_STARTING_SYNC_S && ns.conn == C_STARTING_SYNC_S))
1903 if (os.disk != D_FAILED && ns.disk == D_FAILED) {
1964 if (os.disk != D_DISKLESS && ns.disk == D_DISKLESS) {
1980 if (os.disk == D_UP_TO_DATE && ns.disk == D_INCONSISTENT && ns.conn >= C_CONNECTED)
1991 if ((os.conn > C_CONNECTED && ns.conn <= C_CONNECTED) ||
1992 (os.peer_isp && !ns.peer_isp) ||
1993 (os.user_isp && !ns.user_isp))
1998 if (os.disk < D_UP_TO_DATE && os.conn >= C_SYNC_SOURCE && ns.conn == C_CONNECTED)
2004 if (os.conn == C_VERIFY_S && ns.conn == C_CONNECTED
2019 if ((os.conn > C_CONNECTED && os.conn < C_AHEAD) &&
2030 if (os.aftr_isp != ns.aftr_isp)
2118 union drbd_dev_state os, cs = {
2129 os = device->state;
2132 cs = os;
2137 if (cs.role != os.role)
2140 if (cs.peer != os.peer)
2143 if (cs.conn != os.conn)
2146 if (cs.disk != os.disk)
2149 if (cs.pdsk != os.pdsk)
2164 union drbd_state ns, os;
2171 os = drbd_read_state(device);
2172 ns = sanitize_state(device, os, apply_mask_val(os, mask, val), NULL);
2174 if (flags & CS_IGN_OUTD_FAIL && ns.disk == D_OUTDATED && os.disk < D_OUTDATED)
2175 ns.disk = os.disk;
2177 if (ns.i == os.i)
2180 rv = is_valid_transition(os, ns);
2185 if (is_valid_state(device, os) == rv)
2186 rv = is_valid_soft_transition(os, ns, connection);
2188 rv = is_valid_soft_transition(os, ns, connection);
2193 print_st_err(device, os, ns, rv);
2206 union drbd_state ns, os, ns_max = { };
2232 os = drbd_read_state(device);
2233 ns = apply_mask_val(os, mask, val);
2234 ns = sanitize_state(device, os, ns, NULL);
2236 if (flags & CS_IGN_OUTD_FAIL && ns.disk == D_OUTDATED && os.disk < D_OUTDATED)
2237 ns.disk = os.disk;
2299 union drbd_state ns_max, ns_min, os;
2348 conn_old_common_state(connection, &os, &flags);
2351 conn_pr_state_change(connection, os, ns_max, flags);
2356 acscw->oc = os.conn;