函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:lk_bio_segment_split - split a bio in two bios*@q: [in] request queue pointer*@bio: [in] bio to be split*@bs: [in] bio set to allocate the clone from*@segs: [out] number of segments in the bio with the first half of the sectors* Clone @bio, update the

函数原型:static struct bio *blk_bio_segment_split(struct request_queue *q, struct bio *bio, struct bio_set *bs, unsigned *segs)

返回类型:struct bio

参数:

类型参数名称
struct request_queue *q
struct bio *bio
struct bio_set *bs
unsigned *segs
249  struct bio_vec bv, bvprv, * bvprvp = NULL
251  nsegs等于0, sectors等于0
252  max_sectors等于Return the maximum number of sectors from the start of a bio that may be* submitted as a single request to a block device. If enough sectors remain,* align the end to the physical block size. Otherwise align the end to the* logical block size
253  max_segs等于queue_max_segments(q)
255  rate over multi-page bvec (bv, bio, iter)
260  如果bvprvpCheck if adding a bio_vec after bprv with offset would create a gap in* the SG list. Most drivers don't care about this, but some do.则转到:split
263  如果nsegs小于max_segssectorsbv_len右移9位的值小于等于max_sectorsbv_offsetbv_len小于等于PAGE_SIZE
266  nsegs自加
267  sectors加等于bv_len右移9位
270  转到:split
273  bvprv等于bv
274  bvprvp等于bvprv
277  segs等于nsegs
278  返回:NULL
279  split :
280  segs等于nsegs
281  返回:_split - split a bio*@bio: bio to split*@sectors: number of sectors to split from the front of @bio*@gfp: gfp mask*@bs: bio set to allocate from* Allocates and returns a new bio which represents @sectors from the start of
调用者
名称描述
__blk_queue_split__blk_queue_split - split a bio and submit the second half*@q: [in] request queue pointer*@bio: [in, out] bio to be split*@nr_segs: [out] number of segments in the first bio* Split a bio into two bios, chain the two bios, submit the second half and