R_PRIMARY
if (device->state.role != R_PRIMARY) {
D_ASSERT(device, device->state.role == R_PRIMARY);
if (device->state.role == R_PRIMARY)
if (device->state.role == R_PRIMARY && new < now)
(device->state.role == R_PRIMARY || device->state.peer == R_PRIMARY) &&
!(device->state.role == R_PRIMARY && device->resource->susp_nod))
if (device->state.role != R_PRIMARY &&
if (device->state.role == R_PRIMARY)
conn_highest_role(connection) == R_PRIMARY &&
conn_highest_peer(connection) == R_PRIMARY)
if (device->state.role == R_PRIMARY && new_net_conf->discard_my_data)
iass = (device->state.role == R_PRIMARY);
if (device->state.conn == C_STANDALONE && device->state.role == R_PRIMARY) {
if (new_role == R_PRIMARY) {
rv = drbd_set_role(adm_ctx.device, R_PRIMARY, parms.assume_uptodate);
if (device->state.peer != R_PRIMARY
if (hg == 1 && device->state.role == R_PRIMARY)
return device->state.role == R_PRIMARY ? 1 : -1;
if (hg == -1 && device->state.role == R_PRIMARY) {
if (device->state.role == R_PRIMARY || peer_role == R_PRIMARY) {
if (device->state.role == R_PRIMARY && peer_role == R_PRIMARY) {
if (device->state.role == R_PRIMARY)
int pcount = (device->state.role == R_PRIMARY)
+ (peer_role == R_PRIMARY);
device->state.role == R_PRIMARY && device->state.disk >= D_CONSISTENT) {
} else if (new_size < cur_size && device->state.role == R_PRIMARY) {
device->state.role == R_PRIMARY &&
device->state.role == R_PRIMARY) {
if (conn_highest_role(connection) == R_PRIMARY && conn_highest_pdsk(connection) >= D_UNKNOWN)
(ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.pdsk > D_OUTDATED) &&
!(os.role == R_PRIMARY && os.conn < C_CONNECTED && os.pdsk > D_OUTDATED))
(ns.role == R_PRIMARY && ns.disk < D_UP_TO_DATE && ns.pdsk < D_UP_TO_DATE) &&
!(os.role == R_PRIMARY && os.disk < D_UP_TO_DATE && os.pdsk < D_UP_TO_DATE))
if (device->state.role == R_PRIMARY ||
(device->state.pdsk < D_INCONSISTENT && device->state.peer == R_PRIMARY))
os.peer == R_SECONDARY && ns.peer == R_PRIMARY)
if (!(os.role == R_PRIMARY && os.disk < D_UP_TO_DATE && os.pdsk < D_UP_TO_DATE) &&
(ns.role == R_PRIMARY && ns.disk < D_UP_TO_DATE && ns.pdsk < D_UP_TO_DATE))
if ((ns.role == R_PRIMARY || ns.peer == R_PRIMARY) &&
if (os.peer != R_PRIMARY && ns.peer == R_PRIMARY &&
if (os.peer == R_PRIMARY && ns.peer == R_SECONDARY)
if (os.role == R_PRIMARY && ns.role == R_SECONDARY &&
if (role1 == R_PRIMARY || role2 == R_PRIMARY)
return R_PRIMARY;
return R_PRIMARY;
((os.role != R_PRIMARY && ns.role == R_PRIMARY) ||
if (!nc->two_primaries && ns.role == R_PRIMARY) {
if (ns.peer == R_PRIMARY)
else if (conn_highest_peer(first_peer_device(device)->connection) == R_PRIMARY)
else if (ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.disk < D_UP_TO_DATE)
ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.pdsk >= D_UNKNOWN)
else if (ns.role == R_PRIMARY && ns.disk <= D_INCONSISTENT && ns.pdsk <= D_INCONSISTENT)
else if (ns.role == R_PRIMARY && ns.disk < D_UP_TO_DATE && ns.pdsk < D_UP_TO_DATE)
if (os.role != R_PRIMARY && ns.role == R_PRIMARY
[R_PRIMARY] = "Primary",