[SCSI] Fix command result state propagation
We're seeing a case where the contents of scmd->result isn't being reset after a SCSI command encounters an error, is resubmitted, times out and then gets handled. The error handler acts on the stale result of the previous error instead of the timeout. Fix this by properly zeroing the scmd->status before the command is resubmitted. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Šī revīzija ir iekļauta:

revīziju iesūtīja
James Bottomley

vecāks
d555a2abf3
revīzija
644373a421
@@ -137,6 +137,7 @@ static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy)
|
||||
* lock such that the kblockd_schedule_work() call happens
|
||||
* before blk_cleanup_queue() finishes.
|
||||
*/
|
||||
cmd->result = 0;
|
||||
spin_lock_irqsave(q->queue_lock, flags);
|
||||
blk_requeue_request(q, cmd->request);
|
||||
kblockd_schedule_work(q, &device->requeue_work);
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user