Documented in 1 files:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

block/blk-flush.c blk_insert_flush() -> blk_flush_complete_seq()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 0 rq->bio 4096-ptr_max
PARAM_VALUE 0 rq->biotail 4096-ptr_max
PARAM_VALUE 0 rq->biotail->bi_bdev 4096-ptr_max
PARAM_VALUE 0 rq->cmd_flags 0,2048-u32max
PARAM_VALUE 0 rq->end_io 6297943635729588224
PARAM_VALUE 0 rq->flush.seq 0
PARAM_VALUE 0 rq->mq_ctx 4096-ptr_max
PARAM_VALUE 0 rq->mq_hctx->type 0-2
PARAM_VALUE 0 rq->part 4096-ptr_max
PARAM_VALUE 0 rq->q 4096-ptr_max
PARAM_VALUE 0 rq->rq_flags 0,2-u32max
PARAM_VALUE 0 *rq->crypt_ctx->bc_key->bytes 0-255
PARAM_VALUE 1 fq 4096-ptr_max
PARAM_VALUE 1 fq->mq_flush_lock.rlock.dep_map->name 0-255
PARAM_VALUE 2 seq 0-7
PARAM_VALUE 3 error 0
CAPPED_DATA 0 rq 1
CAPPED_DATA 0 rq->bio 1
CAPPED_DATA 0 rq->biotail 1
CAPPED_DATA 0 rq->q 1
CAPPED_DATA 2 seq 1
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 fq r blk_get_flush_queue
BIT_INFO 0 rq->cmd_flags 0x800,0xffffffffffffffff
NOSPEC 0 rq->__data_len
NOSPEC 0 rq->__sector
NOSPEC 0 rq->biotail->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_iter.bi_size
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_size
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 rq->__data_len 0-u32max[c]
HOST_DATA 0 rq->__sector 0-u64max
HOST_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_iter.bi_size 0-u32max[c]
HOST_DATA 0 rq->biotail->bi_max_vecs 0-u16max[c]
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 0-u32max[c]
HOST_DATA 0 rq->biotail->bi_next->bi_max_vecs 0-4,16,64,128,256[c]
USER_DATA 0 rq->__data_len 0-u32max
USER_DATA 0 rq->__sector 0-u64max
USER_DATA 0 rq->biotail->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->biotail->bi_max_vecs 0-u16max[c]
USER_DATA 0 rq->biotail->bi_next->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->biotail->bi_next->bi_max_vecs 0-u16max[c]
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->async_depth
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->nr_hw_queues
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->nr_requests
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->q_usage_counter.percpu_count_ptr
NO_OVERFLOW_SIMPLE 0 rq->q->async_depth
NO_OVERFLOW_SIMPLE 0 rq->q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 0 rq->q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 0 rq->q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 0 rq->q->nr_hw_queues
NO_OVERFLOW_SIMPLE 0 rq->q->nr_requests
NO_OVERFLOW_SIMPLE 0 rq->q->q_usage_counter.percpu_count_ptr
LOCK2 irq
LOCK2 1 &fq->mq_flush_lock
TYPE_LOCK (struct blk_flush_queue)->mq_flush_lock

block/blk-flush.c flush_end_io() -> blk_flush_complete_seq()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 fq 4096-ptr_max
PARAM_VALUE 1 fq->flush_queue 4096-ptr_max
PARAM_VALUE 1 fq->rq_status 0
PARAM_VALUE 2 seq 1,4
CAPPED_DATA 0 &rq->queuelist 1
DATA_SOURCE 1 fq r blk_get_flush_queue
DATA_SOURCE 2 seq r blk_flush_cur_seq
DATA_SOURCE 3 error $1 [m]
BIT_INFO 2 seq 0x0,0x5
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 flags
LOCK2 1 &fq->mq_flush_lock
TYPE_LOCK (struct blk_flush_queue)->mq_flush_lock

block/blk-flush.c mq_flush_data_end_io() -> blk_flush_complete_seq()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 0 rq->end_io 1-u64max
PARAM_VALUE 0 rq->mq_ctx 4096-ptr_max
PARAM_VALUE 0 rq->q 4096-ptr_max
PARAM_VALUE 0 rq->q->elevator->type->elevator_attrs 4096-ptr_max
PARAM_VALUE 0 rq->q->elevator->type->elevator_name 4096-ptr_max
PARAM_VALUE 0 rq->q->elevator->type->icq_align 0,8
PARAM_VALUE 0 rq->queuelist.next 4096-ptr_max
PARAM_VALUE 0 rq->queuelist.next->next 4096-ptr_max
PARAM_VALUE 0 rq->queuelist.prev 4096-ptr_max
PARAM_VALUE 0 rq->queuelist.prev->next 4096-ptr_max
PARAM_VALUE 0 rq->queuelist.prev->prev 4096-ptr_max
PARAM_VALUE 1 fq 4096-ptr_max
PARAM_VALUE 2 seq 2
BUF_SIZE 0 rq (-1)-s32max
BUF_SIZE 0 rq (-1)-s32max
CAPPED_DATA 0 rq 1
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 fq r blk_get_flush_queue
DATA_SOURCE 3 error $1
NOSPEC 0 rq->__data_len
NOSPEC 0 rq->__sector
NOSPEC 0 rq->bio->bi_iter.bi_sector
NOSPEC 0 rq->bio->bi_iter.bi_size
NOSPEC 0 rq->biotail->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_iter.bi_size
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_sector
NOSPEC 0 rq->biotail->bi_next->bi_iter.bi_size
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 0 rq->__data_len 0-u32max[c]
HOST_DATA 0 rq->__sector 0-u64max
HOST_DATA 0 rq->bio->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->bio->bi_iter.bi_size 0-u32max[c]
HOST_DATA 0 rq->bio->bi_max_vecs 0-4,16,64,128,256[c]
HOST_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_iter.bi_size 0-u32max[c]
HOST_DATA 0 rq->biotail->bi_max_vecs 0-u16max[c]
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
HOST_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 1024-4294966272[c]
USER_DATA 0 rq->__data_len 0-u32max
USER_DATA 0 rq->__sector 0-u64max
USER_DATA 0 rq->bio->bi_ioprio 0-u16max
USER_DATA 0 rq->bio->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->bio->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->bio->bi_max_vecs 0-u16max[c]
USER_DATA 0 rq->biotail->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->biotail->bi_max_vecs 0-u16max[c]
USER_DATA 0 rq->biotail->bi_next->bi_ioprio 0-u16max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_sector 0-u64max
USER_DATA 0 rq->biotail->bi_next->bi_iter.bi_size 0-u32max
USER_DATA 0 rq->biotail->bi_next->bi_max_vecs 0-256[c]
USER_DATA 0 rq->tag 1-65534[c]
NO_OVERFLOW_SIMPLE 0 rq->bio->bi_iter.bi_sector
NO_OVERFLOW_SIMPLE 0 rq->bio->bi_max_vecs
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->ioc
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->async_depth
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.io_min
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.logical_block_size
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.physical_block_size
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->nr_hw_queues
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->nr_requests
NO_OVERFLOW_SIMPLE 0 rq->elv.icq->q->q_usage_counter.percpu_count_ptr
NO_OVERFLOW_SIMPLE 0 rq->q->async_depth
NO_OVERFLOW_SIMPLE 0 rq->q->limits.discard_granularity
NO_OVERFLOW_SIMPLE 0 rq->q->limits.io_min
NO_OVERFLOW_SIMPLE 0 rq->q->limits.logical_block_size
NO_OVERFLOW_SIMPLE 0 rq->q->limits.max_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->q->limits.max_hw_discard_sectors
NO_OVERFLOW_SIMPLE 0 rq->q->limits.max_open_zones
NO_OVERFLOW_SIMPLE 0 rq->q->limits.physical_block_size
NO_OVERFLOW_SIMPLE 0 rq->q->limits.zone_write_granularity
NO_OVERFLOW_SIMPLE 0 rq->q->nr_hw_queues
NO_OVERFLOW_SIMPLE 0 rq->q->nr_requests
NO_OVERFLOW_SIMPLE 0 rq->q->q_usage_counter.percpu_count_ptr
LOCK2 flags
LOCK2 1 &fq->mq_flush_lock
TYPE_LOCK (struct blk_flush_queue)->mq_flush_lock