|
@@ -140,14 +140,12 @@ static void scsi_unprep_request(struct request *req)
|
|
|
* commands.
|
|
|
* Notes: This could be called either from an interrupt context or a
|
|
|
* normal process context.
|
|
|
- * Notes: Upon return, cmd is a stale pointer.
|
|
|
*/
|
|
|
int scsi_queue_insert(struct scsi_cmnd *cmd, int reason)
|
|
|
{
|
|
|
struct Scsi_Host *host = cmd->device->host;
|
|
|
struct scsi_device *device = cmd->device;
|
|
|
struct request_queue *q = device->request_queue;
|
|
|
- struct request *req = cmd->request;
|
|
|
unsigned long flags;
|
|
|
|
|
|
SCSI_LOG_MLQUEUE(1,
|
|
@@ -188,9 +186,8 @@ int scsi_queue_insert(struct scsi_cmnd *cmd, int reason)
|
|
|
* function. The SCSI request function detects the blocked condition
|
|
|
* and plugs the queue appropriately.
|
|
|
*/
|
|
|
- scsi_unprep_request(req);
|
|
|
spin_lock_irqsave(q->queue_lock, flags);
|
|
|
- blk_requeue_request(q, req);
|
|
|
+ blk_requeue_request(q, cmd->request);
|
|
|
spin_unlock_irqrestore(q->queue_lock, flags);
|
|
|
|
|
|
scsi_run_queue(q);
|