函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\bio.c Create Date:2022-07-27 18:30:23
Last Modify:2020-03-17 23:13:58 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:bio_try_merge_pc_page

函数原型:static bool bio_try_merge_pc_page(struct request_queue *q, struct bio *bio, struct page *page, unsigned len, unsigned offset, bool *same_page)

返回类型:bool

参数:

类型参数名称
struct request_queue *q
struct bio *bio
struct page *page
unsignedlen
unsignedoffset
bool *same_page
705  bv等于 the actual vec list [ how many bio_vec's - 1]
706  mask等于queue_segment_boundary(q)
707  addr1等于Change "struct page" to physical address.(bv_page)加bv_offset
708  addr2等于Change "struct page" to physical address.(page)加offsetlen减1
710  如果addr1按位或mask的值不等于addr2按位或mask的值则返回:false
712  如果bv_lenlen大于queue_max_segment_size(q)则返回:false
714  返回:__bio_try_merge_page - try appending data to an existing bvec.*@bio: destination bio*@page: start page to add*@len: length of the data to add*@off: offset of the data relative to @page*@same_page: return if the segment has been merged inside the same page
调用者
名称描述
__bio_add_pc_page__bio_add_pc_page - attempt to add page to passthrough bio*@q: the target queue*@bio: destination bio*@page: page to add*@len: vec entry length*@offset: vec entry offset*@same_page: return if the merge happen inside the same page