2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-19 18:53:52 +08:00

ide: don't acquire queue lock in ide_pm_execute_rq

There is nothing we can synchronize against over a call to
blk_queue_dying.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Christoph Hellwig 2018-11-16 09:10:04 +01:00 committed by Jens Axboe
parent a50f9aec1a
commit b2101f655f

View File

@ -44,15 +44,12 @@ static int ide_pm_execute_rq(struct request *rq)
{ {
struct request_queue *q = rq->q; struct request_queue *q = rq->q;
spin_lock_irq(&q->queue_lock);
if (unlikely(blk_queue_dying(q))) { if (unlikely(blk_queue_dying(q))) {
rq->rq_flags |= RQF_QUIET; rq->rq_flags |= RQF_QUIET;
scsi_req(rq)->result = -ENXIO; scsi_req(rq)->result = -ENXIO;
spin_unlock_irq(&q->queue_lock);
blk_mq_end_request(rq, BLK_STS_OK); blk_mq_end_request(rq, BLK_STS_OK);
return -ENXIO; return -ENXIO;
} }
spin_unlock_irq(&q->queue_lock);
blk_execute_rq(q, NULL, rq, true); blk_execute_rq(q, NULL, rq, true);
return scsi_req(rq)->result ? -EIO : 0; return scsi_req(rq)->result ? -EIO : 0;