Documented in 1 files:

Defined in 2 files as a function:

Referenced in 5 files:

Smatch caller information:

block/blk-throttle.c tg_cancel_writeback_bios() -> blkg_put()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &q->queue_lock
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &md->table_devices_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &set->update_nr_hwq_lock
HALF_LOCKED2 &ub->mutex
HALF_LOCKED2 global &bch_register_lock
HALF_LOCKED2 global &devices_mutex
HALF_LOCKED2 global &mtd_table_mutex
TYPE_LOCK (struct request_queue)->queue_lock

block/blk-throttle.c tg_dispatch_one_bio() -> blkg_put()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &q->queue_lock
LOCK2 irq
TYPE_LOCK (struct request_queue)->queue_lock

block/blk-throttle.c throtl_pop_queued() -> blkg_put()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
NOCHECK_CALL
LOCK2 &q->queue_lock
LOCK2 irq
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct request_queue)->queue_lock

block/bio.c bio_endio() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &cache->background_work_lock
HALF_LOCKED2 &head->srcu
HALF_LOCKED2 &ic->endio_wait.lock
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &md->suspend_lock
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

block/bio.c bio_uninit() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &md->io_barrier

block/blk-cgroup.c bio_associate_blkg_from_css() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &bfqd->lock
HALF_LOCKED2 irq

block/blk-cgroup.c blkcg_activate_policy() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 4096-ptr_max
PARAM_VALUE 0 blkg->blkcg_node.pprev 1-u64max
PARAM_VALUE 0 blkg->refcnt.percpu_count_ptr 1-u64max
CAPPED_DATA 0 blkg 1
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &q->blkcg_mutex
LOCK2 &q->queue_lock
LOCK2 irq
HALF_LOCKED2 &bdev->bd_queue->rq_qos_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &q->elevator_lock
TYPE_LOCK (struct request_queue)->blkcg_mutex
TYPE_LOCK (struct request_queue)->queue_lock

block/blk-cgroup.c blkcg_activate_policy() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 4096-ptr_max
PARAM_VALUE 0 blkg->blkcg_node.pprev 1-u64max
PARAM_VALUE 0 blkg->refcnt.percpu_count_ptr 1-u64max
CAPPED_DATA 0 blkg 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &bdev->bd_queue->rq_qos_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &q->elevator_lock

block/blk-cgroup.c blkcg_destroy_blkgs() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 4096-ptr_max
PARAM_VALUE 0 blkg->blkcg_node.pprev 0
PARAM_VALUE 0 blkg->q 4096-ptr_max
PARAM_VALUE 0 blkg->q->queue_lock.rlock.dep_map->name 0-255
DATA_SOURCE 0 blkg r blkcg_get_first_blkg
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &wb->bdi->cgwb_release_mutex
HALF_LOCKED2 global &cgroup_mutex

block/blk-cgroup.c blkcg_maybe_throttle_current() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 4096-ptr_max
PARAM_VALUE 0 blkg->parent 0
PARAM_VALUE 0 blkg->refcnt.percpu_count_ptr 1-u64max
DATA_SOURCE 0 blkg r blkg_lookup
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sqd->lock
HALF_LOCKED2 &vcpu->mutex

block/blk-cgroup.c blkg_free_workfn() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 1-u64max
NOCHECK_CALL
LOCK2 &q->blkcg_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct request_queue)->blkcg_mutex

block/blk-iolatency.c blkiolatency_timer_fn() -> blkg_put()

Type Parameter Key Value
PARAM_VALUE 0 blkg 4096-ptr_max
PARAM_VALUE 0 blkg->refcnt.percpu_count_ptr 1-u64max
DATA_SOURCE 0 blkg r blkg_lookup
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read

block/bfq-cgroup.c bfqg_and_blkg_put() -> blkg_put()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &q->elevator_lock
HALF_LOCKED2 irq