aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2018-11-12 19:19:32 -0500
committerJens Axboe <axboe@kernel.dk>2018-11-12 19:19:32 -0500
commitd16a67667c611f00b5ec0017ad2b18f473af13d2 (patch)
tree17499f39a767222e983f1d1b6be58dc1f0bd60f9
parent628bd85947091830a8c4872adfd5ed1d515a9cf2 (diff)
ide: don't clear special on ide_queue_rq() entry
We can't use RQF_DONTPREP to see if we should clear ->special, as someone could have set that while inserting the request. Make sure we clear it in our ->initialize_rq_fn() helper instead. Fixes: 22ce0a7ccf23 ("ide: don't use req->special") Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--drivers/ide/ide-io.c5
-rw-r--r--drivers/ide/ide-probe.c1
2 files changed, 1 insertions, 5 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 94e9c79c41cf..c0dd0fad16a3 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -463,11 +463,6 @@ blk_status_t ide_queue_rq(struct blk_mq_hw_ctx *hctx,
463 struct request *rq = bd->rq; 463 struct request *rq = bd->rq;
464 ide_startstop_t startstop; 464 ide_startstop_t startstop;
465 465
466 if (!(rq->rq_flags & RQF_DONTPREP)) {
467 rq->rq_flags |= RQF_DONTPREP;
468 ide_req(rq)->special = NULL;
469 }
470
471 /* HLD do_request() callback might sleep, make sure it's okay */ 466 /* HLD do_request() callback might sleep, make sure it's okay */
472 might_sleep(); 467 might_sleep();
473 468
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index 40384838e439..63627be0811a 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -746,6 +746,7 @@ static void ide_initialize_rq(struct request *rq)
746{ 746{
747 struct ide_request *req = blk_mq_rq_to_pdu(rq); 747 struct ide_request *req = blk_mq_rq_to_pdu(rq);
748 748
749 req->special = NULL;
749 scsi_req_init(&req->sreq); 750 scsi_req_init(&req->sreq);
750 req->sreq.sense = req->sense; 751 req->sreq.sense = req->sense;
751} 752}