函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:submit_bio - submit a bio to the block device layer for I/O*@bio: The &struct bio which describes the I/O* submit_bio() is very similar in purpose to generic_make_request(), and* uses that function to do most of the work. Both are fairly rough

函数原型:blk_qc_t submit_bio(struct bio *bio)

返回类型:blk_qc_t

参数:

类型参数名称
struct bio *bio
1148  bool workingset_read = false
1152  如果blkcg_punt_bio_submit(bio)则返回:BLK_QC_T_NONE
1159  如果Check whether this bio carries any data or not. A NULL bio is allowed.
1162  如果此条件成立可能性小(为编译器优化)(bio_op(bio) == REQ_OP_WRITE_SAME)则count等于queue_logical_block_size(queue)右移9位
1164  否则count等于bio_sectors(bio)
1167  如果op_is_write(bio_op(bio))则
1169  否则
1170  如果bio_flagged(bio, BIO_WORKINGSET)则workingset_read = true
1192  如果workingset_readpsi_memstall_enter( & pflags)
1195  ret等于generic_make_request - hand a buffer to its device driver for I/O*@bio: The bio describing the location in memory and on the device.* generic_make_request() is used to make I/O requests of block* devices
1197  如果workingset_readpsi_memstall_leave( & pflags)
1200  返回:ret
调用者
名称描述
swap_readpage
blk_next_bio
blkg_async_bio_workfn
__blkdev_direct_IO_simple
__blkdev_direct_IO
dio_bio_submitIn the AIO read case we speculatively dirty the pages before starting IO.* During IO completion, any of these pages which happen to have been written* back will be redirtied by bio_check_pages_dirty().
mpage_bio_submit
iomap_readpage_actor
iomap_readpage
iomap_readpages
iomap_submit_ioendSubmit the final bio for an ioend.* If @error is non-zero, it means that we have a situation where some part of* the submission process has failed after we have marked paged for writeback* and unlocked them
iomap_chain_bioAllocate a new bio, and chain the old bio to the new one.* Note that we have to do perform the chaining in this unintuitive order* so that the bi_private linkage is set up in the right direction for the* traversal in iomap_finish_ioend().
iomap_dio_submit_bio
hib_submit_io