Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/block/drbd/drbd_actlog.c drbd_al_complete_io() -> lc_put()

Type Parameter Key Value
PARAM_VALUE 0 lc 4096-ptr_max
PARAM_VALUE 0 lc->nr_elements 1-u32max
PARAM_VALUE 1 e 4096-ptr_max
PARAM_VALUE 1 e->refcnt 1-u32max
CAPPED_DATA 1 e->lc_new_number 1
DATA_SOURCE 1 e r lc_find
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &device->al_lock
LOCK2 flags
TYPE_LOCK (struct drbd_device)->al_lock

drivers/block/drbd/drbd_actlog.c drbd_rs_begin_io() -> lc_put()

Type Parameter Key Value
PARAM_VALUE 0 lc 4096-ptr_max
PARAM_VALUE 0 lc->in_use.next 4096-ptr_max
PARAM_VALUE 0 lc->in_use.next->next 4096-ptr_max
PARAM_VALUE 0 lc->in_use.next->prev 4096-ptr_max
PARAM_VALUE 0 lc->nr_elements 1-u32max
PARAM_VALUE 0 lc->to_be_changed.next 4096-ptr_max
PARAM_VALUE 0 lc->to_be_changed.next->next 4096-ptr_max
PARAM_VALUE 0 lc->to_be_changed.next->prev 4096-ptr_max
PARAM_VALUE 1 e 4096-ptr_max
PREEMPT_ADD <- disables preempt
TASK_NOT_RUNNING
LOCK2 &device->al_lock
LOCK2 irq
TYPE_LOCK (struct drbd_device)->al_lock

drivers/block/drbd/drbd_actlog.c drbd_rs_complete_io() -> lc_put()

Type Parameter Key Value
PARAM_VALUE 0 lc 4096-ptr_max
PARAM_VALUE 0 lc->nr_elements 1-u32max
PARAM_VALUE 1 e 4096-ptr_max
PARAM_VALUE 1 e->refcnt 1-u32max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &device->al_lock
LOCK2 flags
TYPE_LOCK (struct drbd_device)->al_lock

drivers/block/drbd/drbd_actlog.c drbd_rs_del_all() -> lc_put()

Type Parameter Key Value
PARAM_VALUE 0 lc 4096-ptr_max
PARAM_VALUE 0 lc->lc_element 4096-ptr_max
PARAM_VALUE 0 lc->nr_elements 1-u32max
PARAM_VALUE 1 e 4096-ptr_max
PARAM_VALUE 1 e->lc_number 0-4294967294
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 &device->al_lock
LOCK2 irq
HALF_LOCKED2 device->state_mutex
TYPE_LOCK (struct drbd_device)->al_lock

drivers/block/drbd/drbd_actlog.c drbd_try_rs_begin_io() -> lc_put()

Type Parameter Key Value
PARAM_VALUE 0 lc 4096-ptr_max
PARAM_VALUE 0 lc->nr_elements 1-u32max
PARAM_VALUE 1 e 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &device->al_lock
LOCK2 irq
TYPE_LOCK (struct drbd_device)->al_lock

drivers/block/drbd/drbd_actlog.c drbd_try_rs_begin_io() -> lc_put()

Type Parameter Key Value
PARAM_VALUE 0 lc 4096-ptr_max
PARAM_VALUE 0 lc->nr_elements 1-u32max
PARAM_VALUE 1 e 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &device->al_lock
LOCK2 irq
TYPE_LOCK (struct drbd_device)->al_lock

drivers/block/drbd/drbd_actlog.c update_rs_extent() -> lc_put()

Type Parameter Key Value
PARAM_VALUE 0 lc 4096-ptr_max
PARAM_VALUE 0 lc->nr_elements 1-u32max
PARAM_VALUE 0 lc->pending_changes 0
PARAM_VALUE 0 lc->to_be_changed.next 4096-ptr_max
PARAM_VALUE 0 lc->to_be_changed.next->next 4096-ptr_max
PARAM_VALUE 0 lc->to_be_changed.next->prev 4096-ptr_max
PARAM_VALUE 1 e 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &device->al_lock
HALF_LOCKED2 &device->resource->req_lock
HALF_LOCKED2 &resource->req_lock
HALF_LOCKED2 flags
HALF_LOCKED2 irq
TYPE_LOCK (struct drbd_device)->al_lock