函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:bio_attempt_front_merge

函数原型:bool bio_attempt_front_merge(struct request *req, struct bio *bio, unsigned int nr_segs)

返回类型:bool

参数:

类型参数名称
struct request *req
struct bio *bio
unsigned intnr_segs
627  ff等于 bottom bits req flags, * top bits REQ_OP. Use * accessors.按位与REQ_FAILFAST_MASK
629  如果非ll_front_merge_fn(req, bio, nr_segs)则返回:false
632  lock_bio_frontmerge - merging block operation to the beginning of an existing operation*@q: queue holding operation*@rq: request bio is being merged into*@bio: new block operation to merge* Merging block IO operation @bio to the beginning of an existing
633  rq_qos_merge(q, req, bio)
635  如果 op and common flags 按位与REQ_FAILFAST_MASK的值不等于ffblk_rq_set_mixed_merge(req)
638  request queue link 等于bio
639  bio等于bio
641  sector cursor 等于 device address in 512 byte sectors
642  total data len 加等于 residual I/O count
644  blk_account_io_start(req, false)
645  返回:true
调用者
名称描述
blk_attempt_plug_mergelk_attempt_plug_merge - try to merge with %current's plugged list*@q: request_queue new bio is being queued at*@bio: new bio being queued*@nr_segs: number of segments in @bio*@same_queue_rq: pointer to &struct request that gets filled in when* another
blk_mq_sched_try_merge
blk_mq_bio_list_mergeIterate list of requests and see if we can merge this bio with any* of them.