函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

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

函数原型:bool __bio_try_merge_page(struct bio *bio, struct page *page, unsigned int len, unsigned int off, bool *same_page)

返回类型:bool

参数:

类型参数名称
struct bio *bio
struct page *page
unsigned intlen
unsigned intoff
bool *same_page
803  如果WARN_ON_ONCE(bio_flagged(bio, BIO_CLONED))则返回:false
806  如果 how many bio_vec's 大于0则
807  bv等于 the actual vec list [ how many bio_vec's - 1]
809  如果page_is_mergeable(bv, page, len, off, same_page)则
810  如果 residual I/O count 大于UINT_MAXlen则返回:false
812  bv_len加等于len
813  residual I/O count 加等于len
814  返回:true
817  返回:false
调用者
名称描述
bio_try_merge_pc_page
bio_add_page_add_page - attempt to add page(s) to bio*@bio: destination bio*@page: start page to add*@len: vec entry length, may cross pages*@offset: vec entry offset relative to @page, may cross pages* Attempt to add page(s) to the bio_vec maplist
__bio_iov_iter_get_pages__bio_iov_iter_get_pages - pin user or kernel pages and add them to a bio*@bio: bio to add pages to*@iter: iov iterator describing the region to be mapped* Pins pages from *iter and appends them to @bio's bvec array. The
iomap_add_to_ioendTest to see if we have an existing ioend structure that we could append to* first, otherwise finish off the current ioend and start another.