Documented in 1 files:
Defined in 2 files as a function:
Referenced in 5 files:
- block/bfq-cgroup.c, line 359
- block/bio.c
- block/blk-cgroup.c
- block/blk-iolatency.c, line 708
- block/blk-throttle.c
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 |