Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/block/ublk_drv.c __ublk_batch_prep_dispatch() -> blk_rq_has_data()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
DATA_SOURCE 0 rq r blk_mq_tag_to_rq
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->uring_lock

drivers/block/ublk_drv.c __ublk_check_and_get_req() -> blk_rq_has_data()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
CAPPED_DATA 0 rq->tag 1
DATA_SOURCE 0 rq r blk_mq_tag_to_rq
RX_PATH
TASK_NOT_RUNNING

drivers/block/ublk_drv.c ublk_daemon_register_io_buf() -> blk_rq_has_data()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->uring_lock

drivers/block/ublk_drv.c ublk_dispatch_req() -> blk_rq_has_data()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
DATA_SOURCE 0 rq $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 rq->tag
HALF_LOCKED2 &ctx->uring_lock
HALF_LOCKED2 _T->lock

drivers/block/ublk_drv.c ublk_init_iod() -> blk_rq_has_data()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
DATA_SOURCE 0 rq $1
RX_PATH
TASK_NOT_RUNNING

drivers/block/ublk_drv.c ublk_need_map_req() -> blk_rq_has_data()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
DATA_SOURCE 0 rq $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 rq->tag
HALF_LOCKED2 &ctx->uring_lock

drivers/block/ublk_drv.c ublk_need_unmap_req() -> blk_rq_has_data()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
DATA_SOURCE 0 rq $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &ctx->uring_lock

drivers/block/ublk_drv.c ublk_user_copy() -> blk_rq_has_data()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock