函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:blk_mq_free_request

函数原型:void blk_mq_free_request(struct request *rq)

返回类型:void

参数:

类型参数名称
struct request *rq
489  q等于q
490  e等于elevator
491  ctx等于mq_ctx
492  hctx等于mq_hctx
494  如果rq_flags按位与levator private data attached
495  如果efinish_requestfinish_request(rq)
497  如果icq
499  icq = NULL
503  cremented at completion time [rq_is_sync(rq)]自加
504  如果rq_flags按位与rack inflight for MQ atomic_dec( & @nr_active: Number of active requests. Only used when a tag set is* shared across request queues.)
507  如果此条件成立可能性小(为编译器优化)(Flag that puts the machine in "laptop mode". Doubles as a timeout in jiffies:* a full sync is triggered after this time elapses without any disk activity. && !blk_rq_is_passthrough(rq))则We've spun up the disk and we're in laptop mode: schedule writeback* of all dirty data a few seconds from now. If the flush is already scheduled* then push it back - the user is still using the disk.
510  rq_qos_done(q, rq)
512  WRITE_ONCE(state, MQ_RQ_IDLE)
513  如果_dec_and_test - decrement a refcount and test if it is 0*@r: the refcount* Similar to atomic_dec_and_test(), it will WARN on underflow and fail to* decrement when saturated at REFCOUNT_SATURATED__blk_mq_free_request(rq)
调用者
名称描述
__blk_mq_end_request
dd_bio_merge
bfq_bio_merge
blk_put_request