函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:blk_kick_flush

函数原型:static void blk_kick_flush(struct request_queue *q, struct blk_flush_queue *fq, unsigned int flags)

返回类型:void

参数:

类型参数名称
struct request_queue *q
struct blk_flush_queue *fq
unsigned intflags
284  pending等于flush_queue[flush_pending_idx]
285  first_rq等于list_first_entry - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.* Note, that list is expected to be not empty.(pending, structrequest, list)
287  flush_rq等于flush_rq
290  如果flush_pending_idx不等于flush_running_idx链表为空则返回
299  如果非链表为空elevatortime_before(jiffies, flush_pending_since + FLUSH_PENDING_TIMEOUT)则返回
308  flush_pending_idx异或等于1
310  blk_rq_init(q, flush_rq)
320  mq_ctx等于mq_ctx
321  mq_hctx等于mq_hctx
323  如果非elevator
324  * flush_rq shares tag with this rq, both can't be active * at the same time等于first_rq
325  tag等于tag
326  This helper should only be used for flush request to share tag* with the request cloned from, and both the two requests can't be* in flight at the same time. The caller has to make sure the tag* can't be freed.
327  否则
328  internal_tag等于internal_tag
331  op and common flags 等于REQ_OP_FLUSH按位或REQ_PREFLUSH
332  op and common flags 或等于flags按位与REQ_DRV按位或flags按位与REQ_FAILFAST_MASK
333  rq_flags或等于quest for flush sequence
334  rq_disk等于rq_disk
335  * completion callback.等于flush_end_io
337  blk_flush_queue_rq(flush_rq, false)
调用者
名称描述
blk_flush_complete_seqlk_flush_complete_seq - complete flush sequence*@rq: PREFLUSH/FUA request being sequenced*@fq: flush queue*@seq: sequences to complete (mask of %REQ_FSEQ_*, can be zero)*@error: whether an error occurred*@rq just completed @seq part of its flush sequence,