Lines Matching refs:state_change
29 struct drbd_state_change *state_change;
60 struct drbd_state_change *state_change;
67 state_change = kmalloc(size, gfp);
68 if (!state_change)
70 state_change->n_devices = n_devices;
71 state_change->n_connections = n_connections;
72 state_change->devices = (void *)(state_change + 1);
73 state_change->connections = (void *)&state_change->devices[n_devices];
74 state_change->peer_devices = (void *)&state_change->connections[n_connections];
75 state_change->resource->resource = NULL;
77 state_change->devices[n].device = NULL;
79 state_change->connections[n].connection = NULL;
80 return state_change;
85 struct drbd_state_change *state_change;
99 state_change = alloc_state_change(n_devices, n_connections, gfp);
100 if (!state_change)
104 state_change->resource->resource = resource;
105 state_change->resource->role[OLD] =
107 state_change->resource->susp[OLD] = resource->susp;
108 state_change->resource->susp_nod[OLD] = resource->susp_nod;
109 state_change->resource->susp_fen[OLD] = resource->susp_fen;
111 connection_state_change = state_change->connections;
122 device_state_change = state_change->devices;
123 peer_device_state_change = state_change->peer_devices;
152 return state_change;
155 static void remember_new_state(struct drbd_state_change *state_change)
161 if (!state_change)
164 resource_state_change = &state_change->resource[0];
173 for (n = 0; n < state_change->n_devices; n++) {
175 &state_change->devices[n];
181 for (n = 0; n < state_change->n_connections; n++) {
183 &state_change->connections[n];
192 for (n = 0; n < state_change->n_devices * state_change->n_connections; n++) {
194 &state_change->peer_devices[n];
211 void copy_old_to_new_state_change(struct drbd_state_change *state_change)
213 struct drbd_resource_state_change *resource_state_change = &state_change->resource[0];
224 for (n_connection = 0; n_connection < state_change->n_connections; n_connection++) {
226 &state_change->connections[n_connection];
232 for (n_device = 0; n_device < state_change->n_devices; n_device++) {
234 &state_change->devices[n_device];
239 n_peer_devices = state_change->n_devices * state_change->n_connections;
242 &state_change->peer_devices[n_peer_device];
254 void forget_state_change(struct drbd_state_change *state_change)
258 if (!state_change)
261 if (state_change->resource->resource)
262 kref_put(&state_change->resource->resource->kref, drbd_destroy_resource);
263 for (n = 0; n < state_change->n_devices; n++) {
264 struct drbd_device *device = state_change->devices[n].device;
269 for (n = 0; n < state_change->n_connections; n++) {
271 state_change->connections[n].connection;
276 kfree(state_change);
1272 struct drbd_state_change *state_change;
1328 state_change = remember_old_state(device->resource, GFP_ATOMIC);
1340 remember_new_state(state_change);
1479 ascw->state_change = state_change;
1495 after_state_ch(device, ascw->os, ascw->ns, ascw->flags, ascw->state_change);
1496 forget_state_change(ascw->state_change);
1603 static void broadcast_state_change(struct drbd_state_change *state_change)
1605 struct drbd_resource_state_change *resource_state_change = &state_change->resource[0];
1635 for (n_connection = 0; n_connection < state_change->n_connections; n_connection++) {
1637 &state_change->connections[n_connection];
1645 for (n_device = 0; n_device < state_change->n_devices; n_device++) {
1647 &state_change->devices[n_device];
1654 n_peer_devices = state_change->n_devices * state_change->n_connections;
1657 &state_change->peer_devices[n_peer_device];
1702 * @state_change: state change to broadcast
1706 struct drbd_state_change *state_change)
1713 broadcast_state_change(state_change);
2040 struct drbd_state_change *state_change;
2053 broadcast_state_change(acscw->state_change);
2054 forget_state_change(acscw->state_change);
2297 struct drbd_state_change *state_change;
2343 state_change = remember_old_state(connection->resource, GFP_ATOMIC);
2348 remember_new_state(state_change);
2359 acscw->state_change = state_change;