函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

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

函数原型:void __blk_queue_split(struct request_queue *q, struct bio **bio, unsigned int *nr_segs)

返回类型:void

参数:

类型参数名称
struct request_queue *q
struct bio **bio
unsigned int *nr_segs
300  struct bio * split = NULL
303  :bio_op( * bio)恒等于REQ_OP_DISCARD
304  :bio_op( * bio)恒等于REQ_OP_SECURE_ERASE
305  split等于blk_bio_discard_split(q, * bio, & bio_split, nr_segs)
306  退出
307  :bio_op( * bio)恒等于REQ_OP_WRITE_ZEROES
308  split等于blk_bio_write_zeroes_split(q, * bio, & bio_split, nr_segs)
310  退出
311  :bio_op( * bio)恒等于REQ_OP_WRITE_SAME
312  split等于blk_bio_write_same_split(q, * bio, & bio_split, nr_segs)
314  退出
315  默认
324  如果非chunk_sectors how many bio_vec's 恒等于1且bv_lenbv_offset小于等于PAGE_SIZE
328  nr_segs等于1
329  退出
331  split等于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
332  退出
335  如果split
337  bottom bits req flags, * top bits REQ_OP. Use * accessors.或等于REQ_NOMERGE
347  bio_set_flag( * bio, BIO_QUEUE_ENTERED)
349  _chain - chain bio completions*@bio: the target bio*@parent: the @bio's parent bio* The caller won't have a bi_end_io called when @bio completes - instead,*@parent's bi_end_io won't be called until both @parent and @bio have
350  lock_split - split a single bio struct into two bio structs*@q: queue containing the bio*@bio: block operation being split*@new_sector: The starting sector for the new bio* The bio request @bio in request queue @q needs to be split into two* bio requests
351  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
352  bio等于split
调用者
名称描述
blk_queue_splitlk_queue_split - split a bio and submit the second half*@q: [in] request queue pointer*@bio: [in, out] bio to be split* Split a bio into two bios, chains the two bios, submit the second half and* store a pointer to the first half in *@bio
blk_mq_make_request