函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:lk_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,

函数原型:static void blk_flush_complete_seq(struct request *rq, struct blk_flush_queue *fq, unsigned int seq, blk_status_t error)

返回类型:void

参数:

类型参数名称
struct request *rq
struct blk_flush_queue *fq
unsigned intseq
blk_status_terror
171  q等于q
172  pending等于flush_queue[flush_pending_idx]
175  BUG_ON(seq & seq)
176  seq或等于seq
177  cmd_flags等于 op and common flags
179  如果此条件成立可能性大(为编译器优化)(!error)则seq等于blk_flush_cur_seq(rq)
181  否则seq等于REQ_FSEQ_DONE
185  :seq恒等于REQ_FSEQ_PREFLUSH
186  :seq恒等于REQ_FSEQ_POSTFLUSH
188  如果链表为空flush_pending_since等于jiffies
190  链表项移动到尾部
191  退出
193  :seq恒等于REQ_FSEQ_DATA
194  链表项移动到尾部
195  blk_flush_queue_rq(rq, true)
196  退出
198  :seq恒等于REQ_FSEQ_DONE
205  BUG_ON(!链表为空)
206  删除链表项并重新初始化
207  blk_flush_restore_request(rq)
208  blk_mq_end_request(rq, error)
209  退出
211  默认
212  BUG()
215  blk_kick_flush(q, fq, cmd_flags)
调用者
名称描述
flush_end_io
mq_flush_data_end_io
blk_insert_flushlk_insert_flush - insert a new PREFLUSH/FUA request*@rq: request to insert* To be called from __elv_add_request() for %ELEVATOR_INSERT_FLUSH insertions.* or __blk_mq_run_hw_queue() to dispatch request.*@rq is being submitted