Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\bio.c Create Date:2022-07-28 16:55:10
Last Modify:2020-03-17 23:13:58 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:bio_try_merge_pc_page

Proto:static bool bio_try_merge_pc_page(struct request_queue *q, struct bio *bio, struct page *page, unsigned len, unsigned offset, bool *same_page)

Type:bool

Parameter:

TypeParameterName
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) + offset + len - 1
710  If (addr1 | mask) != (addr2 | mask) Then Return false
712  If bv_len + len > queue_max_segment_size(q) Then Return false
714  Return __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
Caller
NameDescribe
__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