Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-mq.c Create Date:2022-07-28 17:08:50
Last Modify:2020-03-17 23:18:05 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:blk_mq_free_request

Proto:void blk_mq_free_request(struct request *rq)

Type:void

Parameter:

TypeParameterName
struct request *rq
489  q = q
490  e = elevator
491  ctx = mq_ctx
492  hctx = mq_hctx
494  If rq_flags & levator private data attached Then
495  If e && finish_request Then finish_request(rq)
497  If icq Then
499  icq = NULL
503  cremented at completion time [rq_is_sync(rq)]++
504  If rq_flags & rack inflight for MQ Then atomic_dec( & @nr_active: Number of active requests. Only used when a tag set is* shared across request queues.)
507  If Value for the false possibility is greater at compile time(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)) Then 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  If _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 Then __blk_mq_free_request(rq)
Caller
NameDescribe
__blk_mq_end_request
dd_bio_merge
bfq_bio_merge
blk_put_request