We used to have this because getting the ctx meant disabling preemption, but that hasn't been the case since commit c05f42206f4d. Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> --- block/blk-mq.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index a12b1763508d..6a68e8a246dc 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -338,7 +338,6 @@ static struct request *blk_mq_get_request(struct request_queue *q, struct elevator_queue *e = q->elevator; struct request *rq; unsigned int tag; - bool clear_ctx_on_error = false; u64 alloc_time_ns = 0; blk_queue_enter_live(q); @@ -348,10 +347,8 @@ static struct request *blk_mq_get_request(struct request_queue *q, alloc_time_ns = ktime_get_ns(); data->q = q; - if (likely(!data->ctx)) { + if (likely(!data->ctx)) data->ctx = blk_mq_get_ctx(q); - clear_ctx_on_error = true; - } if (likely(!data->hctx)) data->hctx = blk_mq_map_queue(q, data->cmd_flags, data->ctx); @@ -376,8 +373,6 @@ static struct request *blk_mq_get_request(struct request_queue *q, tag = blk_mq_get_tag(data); if (tag == BLK_MQ_TAG_FAIL) { - if (clear_ctx_on_error) - data->ctx = NULL; blk_queue_exit(q); return NULL; } -- 2.24.1