libata: remove ata_scsi_timed_out
[linux-2.6-block.git] / drivers / ata / libata-eh.c
index c016829a38fd21798e263cdc678517b3dbf728f7..e87785dec151168fbcb6cc73975248b432cc977f 100644 (file)
@@ -500,57 +500,6 @@ void ata_eh_release(struct ata_port *ap)
        mutex_unlock(&ap->host->eh_mutex);
 }
 
-/**
- *     ata_scsi_timed_out - SCSI layer time out callback
- *     @cmd: timed out SCSI command
- *
- *     Handles SCSI layer timeout.  We race with normal completion of
- *     the qc for @cmd.  If the qc is already gone, we lose and let
- *     the scsi command finish (EH_HANDLED).  Otherwise, the qc has
- *     timed out and EH should be invoked.  Prevent ata_qc_complete()
- *     from finishing it by setting EH_SCHEDULED and return
- *     EH_NOT_HANDLED.
- *
- *     TODO: kill this function once old EH is gone.
- *
- *     LOCKING:
- *     Called from timer context
- *
- *     RETURNS:
- *     EH_HANDLED or EH_NOT_HANDLED
- */
-enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd)
-{
-       struct Scsi_Host *host = cmd->device->host;
-       struct ata_port *ap = ata_shost_to_port(host);
-       unsigned long flags;
-       struct ata_queued_cmd *qc;
-       enum blk_eh_timer_return ret;
-
-       DPRINTK("ENTER\n");
-
-       if (ap->ops->error_handler) {
-               ret = BLK_EH_NOT_HANDLED;
-               goto out;
-       }
-
-       ret = BLK_EH_HANDLED;
-       spin_lock_irqsave(ap->lock, flags);
-       qc = ata_qc_from_tag(ap, ap->link.active_tag);
-       if (qc) {
-               WARN_ON(qc->scsicmd != cmd);
-               qc->flags |= ATA_QCFLAG_EH_SCHEDULED;
-               qc->err_mask |= AC_ERR_TIMEOUT;
-               ret = BLK_EH_NOT_HANDLED;
-       }
-       spin_unlock_irqrestore(ap->lock, flags);
-
- out:
-       DPRINTK("EXIT, ret=%d\n", ret);
-       return ret;
-}
-EXPORT_SYMBOL(ata_scsi_timed_out);
-
 static void ata_eh_unload(struct ata_port *ap)
 {
        struct ata_link *link;