|
@@ -485,8 +485,13 @@ static void scsi_run_queue(struct request_queue *q)
|
|
*/
|
|
*/
|
|
static void scsi_requeue_command(struct request_queue *q, struct scsi_cmnd *cmd)
|
|
static void scsi_requeue_command(struct request_queue *q, struct scsi_cmnd *cmd)
|
|
{
|
|
{
|
|
|
|
+ unsigned long flags;
|
|
|
|
+
|
|
cmd->request->flags &= ~REQ_DONTPREP;
|
|
cmd->request->flags &= ~REQ_DONTPREP;
|
|
- blk_insert_request(q, cmd->request, 1, cmd, 1);
|
|
|
|
|
|
+
|
|
|
|
+ spin_lock_irqsave(q->queue_lock, flags);
|
|
|
|
+ blk_requeue_request(q, cmd->request);
|
|
|
|
+ spin_unlock_irqrestore(q->queue_lock, flags);
|
|
|
|
|
|
scsi_run_queue(q);
|
|
scsi_run_queue(q);
|
|
}
|
|
}
|