Lines Matching refs:state_change
41 struct drbd_state_change *state_change; member
72 struct drbd_state_change *state_change; in alloc_state_change() local
79 state_change = kmalloc(size, gfp); in alloc_state_change()
80 if (!state_change) in alloc_state_change()
82 state_change->n_devices = n_devices; in alloc_state_change()
83 state_change->n_connections = n_connections; in alloc_state_change()
84 state_change->devices = (void *)(state_change + 1); in alloc_state_change()
85 state_change->connections = (void *)&state_change->devices[n_devices]; in alloc_state_change()
86 state_change->peer_devices = (void *)&state_change->connections[n_connections]; in alloc_state_change()
87 state_change->resource->resource = NULL; in alloc_state_change()
89 state_change->devices[n].device = NULL; in alloc_state_change()
91 state_change->connections[n].connection = NULL; in alloc_state_change()
92 return state_change; in alloc_state_change()
97 struct drbd_state_change *state_change; in remember_old_state() local
111 state_change = alloc_state_change(n_devices, n_connections, gfp); in remember_old_state()
112 if (!state_change) in remember_old_state()
116 state_change->resource->resource = resource; in remember_old_state()
117 state_change->resource->role[OLD] = in remember_old_state()
119 state_change->resource->susp[OLD] = resource->susp; in remember_old_state()
120 state_change->resource->susp_nod[OLD] = resource->susp_nod; in remember_old_state()
121 state_change->resource->susp_fen[OLD] = resource->susp_fen; in remember_old_state()
123 connection_state_change = state_change->connections; in remember_old_state()
134 device_state_change = state_change->devices; in remember_old_state()
135 peer_device_state_change = state_change->peer_devices; in remember_old_state()
164 return state_change; in remember_old_state()
167 static void remember_new_state(struct drbd_state_change *state_change) in remember_new_state() argument
173 if (!state_change) in remember_new_state()
176 resource_state_change = &state_change->resource[0]; in remember_new_state()
185 for (n = 0; n < state_change->n_devices; n++) { in remember_new_state()
187 &state_change->devices[n]; in remember_new_state()
193 for (n = 0; n < state_change->n_connections; n++) { in remember_new_state()
195 &state_change->connections[n]; in remember_new_state()
204 for (n = 0; n < state_change->n_devices * state_change->n_connections; n++) { in remember_new_state()
206 &state_change->peer_devices[n]; in remember_new_state()
223 void copy_old_to_new_state_change(struct drbd_state_change *state_change) in copy_old_to_new_state_change() argument
225 struct drbd_resource_state_change *resource_state_change = &state_change->resource[0]; in copy_old_to_new_state_change()
236 for (n_connection = 0; n_connection < state_change->n_connections; n_connection++) { in copy_old_to_new_state_change()
238 &state_change->connections[n_connection]; in copy_old_to_new_state_change()
244 for (n_device = 0; n_device < state_change->n_devices; n_device++) { in copy_old_to_new_state_change()
246 &state_change->devices[n_device]; in copy_old_to_new_state_change()
251 n_peer_devices = state_change->n_devices * state_change->n_connections; in copy_old_to_new_state_change()
254 &state_change->peer_devices[n_peer_device]; in copy_old_to_new_state_change()
266 void forget_state_change(struct drbd_state_change *state_change) in forget_state_change() argument
270 if (!state_change) in forget_state_change()
273 if (state_change->resource->resource) in forget_state_change()
274 kref_put(&state_change->resource->resource->kref, drbd_destroy_resource); in forget_state_change()
275 for (n = 0; n < state_change->n_devices; n++) { in forget_state_change()
276 struct drbd_device *device = state_change->devices[n].device; in forget_state_change()
281 for (n = 0; n < state_change->n_connections; n++) { in forget_state_change()
283 state_change->connections[n].connection; in forget_state_change()
288 kfree(state_change); in forget_state_change()
1284 struct drbd_state_change *state_change; in _drbd_set_state() local
1340 state_change = remember_old_state(device->resource, GFP_ATOMIC); in _drbd_set_state()
1352 remember_new_state(state_change); in _drbd_set_state()
1491 ascw->state_change = state_change; in _drbd_set_state()
1507 after_state_ch(device, ascw->os, ascw->ns, ascw->flags, ascw->state_change); in w_after_state_ch()
1508 forget_state_change(ascw->state_change); in w_after_state_ch()
1614 static void broadcast_state_change(struct drbd_state_change *state_change) in broadcast_state_change() argument
1616 struct drbd_resource_state_change *resource_state_change = &state_change->resource[0]; in broadcast_state_change()
1646 for (n_connection = 0; n_connection < state_change->n_connections; n_connection++) { in broadcast_state_change()
1648 &state_change->connections[n_connection]; in broadcast_state_change()
1656 for (n_device = 0; n_device < state_change->n_devices; n_device++) { in broadcast_state_change()
1658 &state_change->devices[n_device]; in broadcast_state_change()
1665 n_peer_devices = state_change->n_devices * state_change->n_connections; in broadcast_state_change()
1668 &state_change->peer_devices[n_peer_device]; in broadcast_state_change()
1716 struct drbd_state_change *state_change) in after_state_ch() argument
1723 broadcast_state_change(state_change); in after_state_ch()
2048 struct drbd_state_change *state_change; member
2061 broadcast_state_change(acscw->state_change); in w_after_conn_state_ch()
2062 forget_state_change(acscw->state_change); in w_after_conn_state_ch()
2307 struct drbd_state_change *state_change; in _conn_request_state() local
2353 state_change = remember_old_state(connection->resource, GFP_ATOMIC); in _conn_request_state()
2358 remember_new_state(state_change); in _conn_request_state()
2369 acscw->state_change = state_change; in _conn_request_state()