On 04/10/2011 07:52 PM, Mark Goodwin wrote:
--- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -554,7 +554,10 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd) cmd->result = (DID_NO_CONNECT << 16); scsi_done(cmd); } else { - rtn = host->hostt->queuecommand(cmd, scsi_done); + if (cmd->device->sdev_state == SDEV_ZOMBIE) + rtn = 0; /* will timeout so err handler will run */ + else + rtn = host->hostt->queuecommand(cmd, scsi_done); } Would we want to consider adding this to the patch set too? It will allow affected sites to more easily tune their timeouts and redundancy config (i.e. echo zombie > /sys/block/sdX/device/state to simulate a failure).
You have someting like that already in the block layer with the io-timeout-fail sysfs setting.
-- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html