|
@@ -1263,6 +1263,8 @@ static struct request *__get_request(struct request_list *rl, unsigned int op,
|
|
|
blk_rq_set_rl(rq, rl);
|
|
|
rq->cmd_flags = op;
|
|
|
rq->rq_flags = rq_flags;
|
|
|
+ if (flags & BLK_MQ_REQ_PREEMPT)
|
|
|
+ rq->rq_flags |= RQF_PREEMPT;
|
|
|
|
|
|
/* init elvpriv */
|
|
|
if (rq_flags & RQF_ELVPRIV) {
|
|
@@ -1444,7 +1446,7 @@ struct request *blk_get_request_flags(struct request_queue *q, unsigned int op,
|
|
|
struct request *req;
|
|
|
|
|
|
WARN_ON_ONCE(op & REQ_NOWAIT);
|
|
|
- WARN_ON_ONCE(flags & ~BLK_MQ_REQ_NOWAIT);
|
|
|
+ WARN_ON_ONCE(flags & ~(BLK_MQ_REQ_NOWAIT | BLK_MQ_REQ_PREEMPT));
|
|
|
|
|
|
if (q->mq_ops) {
|
|
|
req = blk_mq_alloc_request(q, op, flags);
|