diff options
author | Jens Axboe <axboe@kernel.dk> | 2018-11-12 19:19:32 -0500 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-11-12 19:19:32 -0500 |
commit | d16a67667c611f00b5ec0017ad2b18f473af13d2 (patch) | |
tree | 17499f39a767222e983f1d1b6be58dc1f0bd60f9 | |
parent | 628bd85947091830a8c4872adfd5ed1d515a9cf2 (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.c | 5 | ||||
-rw-r--r-- | drivers/ide/ide-probe.c | 1 |
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 | } |