ide: Must hold queue lock when requeueing
ide-atapi requeues requests without holding the queue lock. This patch fixes it by using ide_requeue_and_plug. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
6072f7491f
commit
1af1850346
@@ -263,8 +263,8 @@ void ide_retry_pc(ide_drive_t *drive)
|
|||||||
* of it. The failed command will be retried after sense data
|
* of it. The failed command will be retried after sense data
|
||||||
* is acquired.
|
* is acquired.
|
||||||
*/
|
*/
|
||||||
blk_requeue_request(failed_rq->q, failed_rq);
|
|
||||||
drive->hwif->rq = NULL;
|
drive->hwif->rq = NULL;
|
||||||
|
ide_requeue_and_plug(drive, failed_rq);
|
||||||
if (ide_queue_sense_rq(drive, pc)) {
|
if (ide_queue_sense_rq(drive, pc)) {
|
||||||
blk_start_request(failed_rq);
|
blk_start_request(failed_rq);
|
||||||
ide_complete_rq(drive, -EIO, blk_rq_bytes(failed_rq));
|
ide_complete_rq(drive, -EIO, blk_rq_bytes(failed_rq));
|
||||||
|
Reference in New Issue
Block a user