Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/md/dm-cache-policy-smq.c queue_demotion() -> queue_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mq 4096-ptr_max
PARAM_VALUE 0 mq->bg_work 4096-ptr_max
PARAM_VALUE 0 mq->cache_alloc.free.head 268435455
PARAM_VALUE 0 mq->dirty.nr_elts 1-u32max
PARAM_VALUE 0 mq->hotspot.nr_levels 64
PARAM_VALUE 0 mq->hotspot_table.buckets 4096-ptr_max
PARAM_VALUE 0 mq->migrations_allowed 1
PARAM_VALUE 0 mq->table.buckets 4096-ptr_max
PARAM_VALUE 1 idle 0
DATA_SOURCE 0 mq $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &mq->lock
HALF_LOCKED2 &md->io_barrier
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct smq_policy)->lock

drivers/md/dm-cache-policy-smq.c smq_get_background_work() -> queue_writeback()

Type Parameter Key Value
PARAM_VALUE 0 mq 4096-ptr_max
PARAM_VALUE 0 mq->bg_work 4096-ptr_max
PARAM_VALUE 0 mq->dirty.nr_elts 1-u32max
DATA_SOURCE 0 mq r to_smq_policy
DATA_SOURCE 1 idle $1
PARAM_COMPARE 0 &mq->bg_work->queued == $0->bg_work->queued.next
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &mq->lock
HALF_LOCKED2 &cache->background_work_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct smq_policy)->lock