Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

drivers/block/drbd/drbd_bitmap.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->p_uuid (-1),8
BUF_SIZE 0 device->resync (-1),176
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
DATA_SOURCE 0 device $0
STR_LEN 0 device (-1),6,12,19,23,26-27,29,31-32
STR_LEN 0 device (-1),6,12,19,23,26-27,29,31-32
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
UNITS 0 device unit_byte
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_bitmap.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->p_uuid (-1),8
BUF_SIZE 0 device->resync (-1),176
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
DATA_SOURCE 0 device $0
STR_LEN 0 device (-1),6,12,19,23,26-27,29,31-32
STR_LEN 0 device (-1),6,12,19,23,26-27,29,31-32
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
UNITS 0 device unit_byte
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_state.c _drbd_set_state() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
BUF_SIZE 0 device s32min-(-1),1-s32max
BUF_SIZE 0 device s32min-(-1),1-s32max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->p_uuid (-1),8
BUF_SIZE 0 device->resync (-1)-134217728
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
CAPPED_DATA 0 device 1
DATA_SOURCE 0 device $0
STR_LEN 0 device (-1),6,8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device (-1),6,8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device->bm_io_work.why (-1)
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->lc_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->lc_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
UNITS 0 device unit_byte
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 &device->resource->req_lock
HALF_LOCKED2 &resource->req_lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &resources_mutex
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read
HALF_LOCKED2 0 device->state_mutex
HALF_LOCKED2 0 &device->resource->req_lock

drivers/block/drbd/drbd_state.c _req_st_cond() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
DATA_SOURCE 0 device $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_state.c conn_is_valid_transition() -> drbd_read_state()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &connection->cstate_mutex
HALF_LOCKED2 &connection->data.mutex
HALF_LOCKED2 &connection->resource->conf_update
HALF_LOCKED2 &connection->resource->req_lock
HALF_LOCKED2 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_state.c conn_set_state() -> drbd_read_state()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &connection->cstate_mutex
HALF_LOCKED2 &connection->data.mutex
HALF_LOCKED2 &connection->resource->conf_update
HALF_LOCKED2 &connection->resource->req_lock
HALF_LOCKED2 &device->resource->req_lock
HALF_LOCKED2 &resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_state.c drbd_change_state() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->resync (-1),176
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
DATA_SOURCE 0 device $0
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
LOCK2 flags
LOCK2 0 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_state.c drbd_req_state() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
DATA_SOURCE 0 device $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_state.c drbd_req_state() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
DATA_SOURCE 0 device $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_nl.c drbd_nl_attach_doit() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
CAPPED_DATA 0 device 1
STR_LEN 0 device->resync->name (-1)
TERMINATED 0 device->resync->name 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
LOCK2 &adm_ctx->resource->adm_mutex
LOCK2 irq
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct drbd_resource)->adm_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_nl.c drbd_nl_new_c_uuid_doit() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &adm_ctx->resource->adm_mutex
LOCK2 irq
LOCK2 0 device->state_mutex
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct drbd_resource)->adm_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_actlog.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->p_uuid (-1),8
BUF_SIZE 0 device->resync (-1),176
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
CAPPED_DATA 0 device->bitmap->bm_number_of_pages 1
DATA_SOURCE 0 device $0
STR_LEN 0 device (-1),6,8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device (-1),6,8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device->bm_io_work.why (-1)
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->lc_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->lc_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
UNITS 0 device unit_byte
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_actlog.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->p_uuid (-1),8
BUF_SIZE 0 device->resync (-1),176
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
CAPPED_DATA 0 device->bitmap->bm_number_of_pages 1
DATA_SOURCE 0 device $0
STR_LEN 0 device (-1),6,8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device (-1),6,8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device->bm_io_work.why (-1)
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->lc_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->lc_cache->sheaf_capacity
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
UNITS 0 device unit_byte
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_main.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->p_uuid (-1),8
BUF_SIZE 0 device->resync (-1),176
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
DATA_SOURCE 0 device $0
STR_LEN 0 device (-1),8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device (-1),8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_main.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
BUF_SIZE 0 device->ldev (-1),208
BUF_SIZE 0 device->p_uuid (-1),8
BUF_SIZE 0 device->resync (-1),176
BUF_SIZE 0 device->rs_plan_s (-1),12-s32max
DATA_SOURCE 0 device $0
STR_LEN 0 device (-1),8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device (-1),8,11-12,17,19-20,23,26-27,29,31-32
STR_LEN 0 device->resync->name (-1),6
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 device->act_log->nr_elements
NO_OVERFLOW_SIMPLE 0 device->resync->nr_elements
LOCK2 flags
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 0 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_receiver.c receive_state() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 irq
LOCK2 0 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_receiver.c receive_state() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 irq
LOCK2 0 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_receiver.c receive_state() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 irq
LOCK2 0 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_receiver.c receive_uuids() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max

drivers/block/drbd/drbd_req.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
BUF_SIZE 0 device s32min-(-1),1-s32max
BUF_SIZE 0 device s32min-(-1),1-s32max
CAPPED_DATA 0 device 1
DATA_SOURCE 0 device $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 device unit_byte
LOCK2 &device->resource->req_lock
LOCK2 flags
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &cache->background_work_lock
HALF_LOCKED2 &head->srcu
HALF_LOCKED2 &ic->endio_wait.lock
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &s->lock
HALF_LOCKED2 &sdp->sd_log_flush_lock
HALF_LOCKED2 global &bch_register_lock
HALF_LOCKED2 irq
HALF_LOCKED2 lock.complete_slot
HALF_LOCKED2 lock.pending_slot
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_req.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
BUF_SIZE 0 device s32min-(-1),1-s32max
BUF_SIZE 0 device s32min-(-1),1-s32max
CAPPED_DATA 0 device 1
DATA_SOURCE 0 device $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 device unit_byte
HALF_LOCKED2 &device->resource->req_lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
HALF_LOCKED2 0 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_req.c maybe_pull_ahead() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
BUF_SIZE 0 device s32min-(-1),1-s32max
BUF_SIZE 0 device s32min-(-1),1-s32max
CAPPED_DATA 0 device->resource 1
DATA_SOURCE 0 device $0
PREEMPT_ADD
RX_PATH
UNITS 0 device unit_byte
LOCK2 &resource->req_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_req.c maybe_pull_ahead() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
BUF_SIZE 0 device s32min-(-1),1-s32max
BUF_SIZE 0 device s32min-(-1),1-s32max
CAPPED_DATA 0 device->resource 1
DATA_SOURCE 0 device $0
PREEMPT_ADD
RX_PATH
UNITS 0 device unit_byte
LOCK2 &resource->req_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_worker.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
DATA_SOURCE 0 device $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_worker.c __drbd_chk_io_error_() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
DATA_SOURCE 0 device $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags
LOCK2 0 &device->resource->req_lock
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_worker.c drbd_pause_after() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
DATA_SOURCE 0 device r idr_get_next
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &resources_mutex
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &adm_ctx->resource->adm_mutex
HALF_LOCKED2 device->state_mutex

drivers/block/drbd/drbd_worker.c drbd_resume_next() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
DATA_SOURCE 0 device r idr_get_next
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &resources_mutex
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &adm_ctx->resource->adm_mutex

drivers/block/drbd/drbd_worker.c drbd_resync_finished() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
CAPPED_DATA 0 device->state.disk 1
PREEMPT_ADD <- disables preempt
LOCK2 irq
LOCK2 0 &device->resource->req_lock
HALF_LOCKED2 device->state_mutex
TYPE_LOCK (struct drbd_resource)->req_lock

drivers/block/drbd/drbd_worker.c drbd_start_resync() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
CAPPED_DATA 0 device->state_mutex 1
DATA_SOURCE 0 device $0
LOCK2 global &resources_mutex
LOCK2 irq
LOCK2 0 device->state_mutex

drivers/block/drbd/drbd_worker.c drbd_start_resync() -> drbd_read_state()

Type Parameter Key Value
PARAM_VALUE 0 device 4096-ptr_max
PARAM_VALUE 0 device->resource 4096-ptr_max
DATA_SOURCE 0 device $0
LOCK2 global &resources_mutex
LOCK2 irq
LOCK2 0 device->state_mutex