Function report |
Source Code:block\blk-merge.c |
Create Date:2022-07-28 17:06:18 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:For non-mq, this has to be called with the request spinlock acquired.* For mq with scheduling, the appropriate queue wide lock should be held.
Proto:static struct request *attempt_merge(struct request_queue *q, struct request *req, struct request *next)
Type:struct request
Parameter:
Type | Parameter | Name |
---|---|---|
struct request_queue * | q | |
struct request * | req | |
struct request * | next |
747 | If Not rq_mergeable(req) || Not rq_mergeable(next) Then Return NULL |
753 | If rq_data_dir(req) != rq_data_dir(next) || rq_disk != rq_disk Then Return NULL |
757 | If req_op(req) == REQ_OP_WRITE_SAME && Not blk_write_same_mergeable(bio, bio) Then Return NULL |
765 | If write_hint != write_hint Then Return NULL |
780 | Case blk_try_req_merge(req, next) == ELEVATOR_DISCARD_MERGE |
781 | If Not req_attempt_discard_merge(q, req, next) Then Return NULL |
783 | Break |
784 | Case blk_try_req_merge(req, next) == ELEVATOR_BACK_MERGE |
785 | If Not ll_merge_requests_fn(q, req, next) Then Return NULL |
787 | Break |
788 | Default |
789 | Return NULL |
798 | If (rq_flags | rq_flags) & merge of different types, fail separately || ( op and common flags & REQ_FAILFAST_MASK) != ( op and common flags & REQ_FAILFAST_MASK) Then |
813 | request queue link = bio |
816 | total data len += blk_rq_bytes(next) |
824 | blk_account_io_merge(next) |
830 | bio = NULL |
831 | Return next |
Name | Describe |
---|---|
attempt_back_merge | |
attempt_front_merge | |
blk_attempt_req_merge |
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 |