Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 1 files:
Smatch caller information:
drivers/block/drbd/drbd_state.c _drbd_set_state() -> is_valid_soft_transition()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | os | r drbd_read_state |
| DATA_SOURCE | 1 | ns | $1 [m] |
| PARAM_COMPARE | 1 | ns | == $1 |
| BIT_INFO | 1 | ns | 0x0,0x7fffffff |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &adm_ctx->resource->adm_mutex | ||
| HALF_LOCKED2 | &device->resource->req_lock | ||
| HALF_LOCKED2 | &device->resource->req_lock | ||
| HALF_LOCKED2 | &resource->req_lock | ||
| HALF_LOCKED2 | device->state_mutex | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &resources_mutex | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | rcu_read |
drivers/block/drbd/drbd_state.c _drbd_set_state() -> is_valid_soft_transition()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | os | r drbd_read_state |
| DATA_SOURCE | 1 | ns | $1 [m] |
| PARAM_COMPARE | 1 | ns | == $1 |
| BIT_INFO | 1 | ns | 0x0,0x7fffffff |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &adm_ctx->resource->adm_mutex | ||
| HALF_LOCKED2 | &device->resource->req_lock | ||
| HALF_LOCKED2 | &device->resource->req_lock | ||
| HALF_LOCKED2 | &resource->req_lock | ||
| HALF_LOCKED2 | device->state_mutex | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &resources_mutex | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | rcu_read |
drivers/block/drbd/drbd_state.c _req_st_cond() -> is_valid_soft_transition()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | os | r drbd_read_state |
| DATA_SOURCE | 1 | ns | r sanitize_state |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &device->resource->req_lock | ||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &adm_ctx->resource->adm_mutex | ||
| HALF_LOCKED2 | device->state_mutex | ||
| TYPE_LOCK | (struct drbd_resource)->req_lock |
drivers/block/drbd/drbd_state.c conn_is_valid_transition() -> is_valid_soft_transition()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | connection | 4096-ptr_max |
| BUF_SIZE | 2 | connection | (-1),128 |
| BUF_SIZE | 2 | connection | (-1),128 |
| CAPPED_DATA | 2 | connection->peer_devices.idr_base | 1 |
| DATA_SOURCE | 0 | os | r drbd_read_state |
| DATA_SOURCE | 1 | ns | r sanitize_state |
| DATA_SOURCE | 2 | connection | $0 |
| STR_LEN | 0 | os | (-1)-0 |
| STR_LEN | 2 | connection | (-1)-0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 2 | connection->ack_sender->rescuer | |
| NO_OVERFLOW_SIMPLE | 2 | connection->ack_sender->rescuer->task->dl.dl_runtime | |
| NO_OVERFLOW_SIMPLE | 2 | connection->ack_sender->rescuer->task->dl.pi_se->dl_runtime | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_backlog.len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->next->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_write_queue.next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_write_queue.next->prev->end | |
| LOCK2 | irq | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &device->resource->req_lock | ||
| HALF_LOCKED2 | 2 | &connection->cstate_mutex | |
| HALF_LOCKED2 | 2 | &connection->data.mutex | |
| HALF_LOCKED2 | 2 | &connection->resource->conf_update | |
| HALF_LOCKED2 | 2 | &connection->resource->req_lock | |
| TYPE_LOCK | (struct drbd_resource)->req_lock |
drivers/block/drbd/drbd_state.c conn_is_valid_transition() -> is_valid_soft_transition()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | connection | 4096-ptr_max |
| BUF_SIZE | 2 | connection | (-1),128 |
| BUF_SIZE | 2 | connection | (-1),128 |
| CAPPED_DATA | 2 | connection->peer_devices.idr_base | 1 |
| DATA_SOURCE | 0 | os | r drbd_read_state |
| DATA_SOURCE | 1 | ns | r sanitize_state |
| DATA_SOURCE | 2 | connection | $0 |
| STR_LEN | 0 | os | (-1)-0 |
| STR_LEN | 2 | connection | (-1)-0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NO_OVERFLOW_SIMPLE | 2 | connection->ack_sender->rescuer | |
| NO_OVERFLOW_SIMPLE | 2 | connection->ack_sender->rescuer->task->dl.dl_runtime | |
| NO_OVERFLOW_SIMPLE | 2 | connection->ack_sender->rescuer->task->dl.pi_se->dl_runtime | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_backlog.len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->next->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_receive_queue.prev->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->prev->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->tail | |
| NO_OVERFLOW_SIMPLE | 2 | connection->data.socket->sk->sk_write_queue.next->truesize | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_receive_queue.prev->next->len | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_write_queue.next->end | |
| NO_OVERFLOW_SIMPLE | 2 | connection->meta.socket->sk->sk_write_queue.next->prev->end | |
| LOCK2 | irq | ||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &device->resource->req_lock | ||
| HALF_LOCKED2 | 2 | &connection->cstate_mutex | |
| HALF_LOCKED2 | 2 | &connection->data.mutex | |
| HALF_LOCKED2 | 2 | &connection->resource->conf_update | |
| HALF_LOCKED2 | 2 | &connection->resource->req_lock | |
| TYPE_LOCK | (struct drbd_resource)->req_lock |
drivers/block/drbd/drbd_state.c drbd_req_state() -> is_valid_soft_transition()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | os | r drbd_read_state |
| DATA_SOURCE | 1 | ns | r sanitize_state |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &device->resource->req_lock | ||
| LOCK2 | flags | ||
| HALF_LOCKED2 | &adm_ctx->resource->adm_mutex | ||
| HALF_LOCKED2 | device->state_mutex | ||
| TYPE_LOCK | (struct drbd_resource)->req_lock |