libata: remove ata_scsi_timed_out
authorChristoph Hellwig <hch@lst.de>
Tue, 29 May 2018 13:52:26 +0000 (15:52 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 29 May 2018 14:47:40 +0000 (08:47 -0600)
As far as I can tell this function can't even be called any more, given
that ATA implements its own eh_strategy_handler with ata_scsi_error, which
never calls ->eh_timed_out.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/ata/libata-eh.c
include/linux/libata.h

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;
index 1795fecdea171f5034b8df58eeeff95634955c98..1c113134c98fdbe3db690514efe1308316fdee15 100644 (file)
@@ -1133,7 +1133,6 @@ extern int ata_sas_port_start(struct ata_port *ap);
 extern void ata_sas_port_stop(struct ata_port *ap);
 extern int ata_sas_slave_configure(struct scsi_device *, struct ata_port *);
 extern int ata_sas_queuecmd(struct scsi_cmnd *cmd, struct ata_port *ap);
-extern enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd);
 extern int sata_scr_valid(struct ata_link *link);
 extern int sata_scr_read(struct ata_link *link, int reg, u32 *val);
 extern int sata_scr_write(struct ata_link *link, int reg, u32 val);
@@ -1359,7 +1358,6 @@ extern struct device_attribute *ata_common_sdev_attrs[];
        .proc_name              = drv_name,                     \
        .slave_configure        = ata_scsi_slave_config,        \
        .slave_destroy          = ata_scsi_slave_destroy,       \
-       .eh_timed_out           = ata_scsi_timed_out,           \
        .bios_param             = ata_std_bios_param,           \
        .unlock_native_capacity = ata_scsi_unlock_native_capacity, \
        .sdev_attrs             = ata_common_sdev_attrs