[SCSI] call correct scsi_done function in scsi_dispatch_cmd
authorMike Christie <michaelc@cs.wisc.edu>
Sun, 1 May 2005 19:47:15 +0000 (14:47 -0500)
committerJames Bottomley <jejb@mulgrave.(none)>
Sun, 1 May 2005 19:47:15 +0000 (14:47 -0500)
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 <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/scsi.c

index 05d2bd0..184bcae 100644 (file)
@@ -542,7 +542,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
                 * 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;
        }