call correct scsi_done function in scsi_dispatch_cmd
PATCH 1/1 call correct scsi_done function in scsi_dispatch_cmd
scsi_dispatch_cmd currently calls scsi_done when the device is in the SDEV_DEL state, but at this point the command has not had a timer added to it (this is done a couple lines down) so scsi_done just returns and the command is lost. The attached patch made against 2.6.12-rc3 calls __scsi_done in this case so the comamnd will be returned upwards.
Signed-off-by Mike Christie <[email protected]>
drivers/scsi/scsi.c renamed from drivers/scsi/scsi.c.orig +1 -1
@@ -542,7 +542,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd ** that the device is no longer present */ cmd->result =DID_NO_CONNECT <<16 ;atomic_inc (&cmd->device->iorequest_cnt); -scsi_done (cmd); +__scsi_done (cmd);/* return 0 (because the command has been processed) */ goto out; }