diff options
| -rw-r--r-- | block/blk-core.c | 4 | ||||
| -rw-r--r-- | include/linux/blkdev.h | 14 |
2 files changed, 17 insertions, 1 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 14d7c0740dc0..361b1b965d89 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
| @@ -1153,6 +1153,7 @@ static struct request *__get_request(struct request_list *rl, int op, | |||
| 1153 | 1153 | ||
| 1154 | blk_rq_init(q, rq); | 1154 | blk_rq_init(q, rq); |
| 1155 | blk_rq_set_rl(rq, rl); | 1155 | blk_rq_set_rl(rq, rl); |
| 1156 | blk_rq_set_prio(rq, ioc); | ||
| 1156 | req_set_op_attrs(rq, op, op_flags | REQ_ALLOCED); | 1157 | req_set_op_attrs(rq, op, op_flags | REQ_ALLOCED); |
| 1157 | 1158 | ||
| 1158 | /* init elvpriv */ | 1159 | /* init elvpriv */ |
| @@ -1656,7 +1657,8 @@ void init_request_from_bio(struct request *req, struct bio *bio) | |||
| 1656 | 1657 | ||
| 1657 | req->errors = 0; | 1658 | req->errors = 0; |
| 1658 | req->__sector = bio->bi_iter.bi_sector; | 1659 | req->__sector = bio->bi_iter.bi_sector; |
| 1659 | req->ioprio = bio_prio(bio); | 1660 | if (ioprio_valid(bio_prio(bio))) |
| 1661 | req->ioprio = bio_prio(bio); | ||
| 1660 | blk_rq_bio_prep(req->q, req, bio); | 1662 | blk_rq_bio_prep(req->q, req, bio); |
| 1661 | } | 1663 | } |
| 1662 | 1664 | ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index c47c358ba052..9a0ceaa1b7e6 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -934,6 +934,20 @@ static inline unsigned int blk_rq_count_bios(struct request *rq) | |||
| 934 | } | 934 | } |
| 935 | 935 | ||
| 936 | /* | 936 | /* |
| 937 | * blk_rq_set_prio - associate a request with prio from ioc | ||
| 938 | * @rq: request of interest | ||
| 939 | * @ioc: target iocontext | ||
| 940 | * | ||
| 941 | * Assocate request prio with ioc prio so request based drivers | ||
| 942 | * can leverage priority information. | ||
| 943 | */ | ||
| 944 | static inline void blk_rq_set_prio(struct request *rq, struct io_context *ioc) | ||
| 945 | { | ||
| 946 | if (ioc) | ||
| 947 | rq->ioprio = ioc->ioprio; | ||
| 948 | } | ||
| 949 | |||
| 950 | /* | ||
| 937 | * Request issue related functions. | 951 | * Request issue related functions. |
| 938 | */ | 952 | */ |
| 939 | extern struct request *blk_peek_request(struct request_queue *q); | 953 | extern struct request *blk_peek_request(struct request_queue *q); |
