函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-mq.c Create Date:2022-07-27 18:44:49
Last Modify:2020-03-17 23:18:05 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:blk_mq_get_driver_tag

函数原型:bool blk_mq_get_driver_tag(struct request *rq)

返回类型:bool

参数:

类型参数名称
struct request *rq
1024  struct blk_mq_alloc_data data = { input parameter = q, hctx = mq_hctx, flags = BLK_MQ_REQ_NOWAIT, cmd_flags = op and common flags , }
1032  如果tag不等于负1则返回:true
1035  如果blk_mq_tag_is_reserved(@sched_tags: Tags owned by I/O scheduler. If there is an I/O* scheduler associated with a request queue, a tag is assigned when* that request is allocated. Else, this member is not used., internal_tag)则flags或等于BLK_MQ_REQ_RESERVED
1038  shared等于blk_mq_tag_busy(hctx)
1039  tag等于blk_mq_get_tag( & data)
1040  如果tag大于等于0则
1041  如果shared
1045  rqs[tag]等于rq
1048  返回:tag不等于负1
调用者
名称描述
blk_mq_mark_tag_waitMark us waiting for a tag. For shared tags, this involves hooking us into* the tag wakeups. For non-shared tags, we can simply mark us needing a* restart. For both cases, take care to check the condition again after* marking us as waiting.
blk_mq_dispatch_rq_listReturns true if we did some work AND can potentially do more.
__blk_mq_try_issue_directly