Function report |
Source Code:block\blk-core.c |
Create Date:2022-07-28 17:00:08 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name: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
Proto:blk_qc_t generic_make_request(struct bio *bio)
Type:blk_qc_t
Parameter:
Type | Parameter | Name |
---|---|---|
struct bio * | bio |
1021 | ret = BLK_QC_T_NONE |
1023 | If Not generic_make_request_checks(bio) Then Go to out |
1036 | If bio_list Then |
1037 | bio_list_add( & bio_list[0], bio) |
1038 | Go to out |
1055 | BUG_ON( request queue link ) |
1056 | bio_list_init( & bio_list_on_stack[0]) |
1057 | bio_list = bio_list_on_stack |
1058 | Do |
1060 | flags = If bottom bits req flags, * top bits REQ_OP. Use * accessors. & REQ_NOWAIT Then BLK_MQ_REQ_NOWAIT Else 0 |
1067 | bio_list_on_stack[1] = bio_list_on_stack[0] |
1068 | bio_list_init( & bio_list_on_stack[0]) |
1069 | ret = make_request_fn(q, bio) |
1071 | blk_queue_exit(q) |
1076 | bio_list_init( & lower) |
1077 | bio_list_init( & same) |
1078 | When ((bio = bio_list_pop( & bio_list_on_stack[0])) != NULL) cycle |
1079 | If q == queue Then bio_list_add( & same, bio) |
1081 | Else bio_list_add( & lower, bio) |
1084 | bio_list_merge( & bio_list_on_stack[0], & lower) |
1085 | bio_list_merge( & bio_list_on_stack[0], & same) |
1086 | bio_list_merge( & bio_list_on_stack[0], & bio_list_on_stack[1]) |
1087 | Else |
1088 | If Value for the false possibility is greater at compile time(!blk_queue_dying(q) && ( bottom bits req flags, * top bits REQ_OP. Use * accessors. & REQ_NOWAIT)) Then bio_wouldblock_error(bio) |
1091 | Else bio_io_error(bio) |
1094 | bio = bio_list_pop( & bio_list_on_stack[0]) |
1096 | bio_list = NULL |
1098 | out : |
1099 | Return ret |
Name | Describe |
---|---|
submit_bio | 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_queue_split | __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 |
__blk_queue_bounce | |
blk_throtl_dispatch_work_fn | lk_throtl_dispatch_work_fn - work function for throtl_data->dispatch_work*@work: work item being executed* This function is queued for execution when bio's reach the bio_lists[]* of throtl_data->service_queue. Those bio's are ready and issued by this |
blk_throtl_drain | lk_throtl_drain - drain throttled bios*@q: request_queue to drain throttled bios for* Dispatch all currently throttled bios on @q through ->make_request_fn(). |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |