mirror of
https://github.com/a52xq-dev/kernel.git
synced 2026-10-18 21:58:11 +07:00
scsi: remove eh_timed_out methods in the transport template
Instead define the timeout behavior purely based on the host_template eh_timed_out method and wire up the existing transport implementations in the host templates. This also clears up the confusion that the transport template method overrides the host template one, so some drivers have to re-override the transport template one. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
28917d40e6
commit
b6a05c823f
33 changed files with 38 additions and 33 deletions
|
|
@ -549,6 +549,7 @@ enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd)
|
|||
DPRINTK("EXIT, ret=%d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL(ata_scsi_timed_out);
|
||||
|
||||
static void ata_eh_unload(struct ata_port *ap)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -716,7 +716,6 @@ struct scsi_transport_template *ata_attach_transport(void)
|
|||
return NULL;
|
||||
|
||||
i->t.eh_strategy_handler = ata_scsi_error;
|
||||
i->t.eh_timed_out = ata_scsi_timed_out;
|
||||
i->t.user_scan = ata_scsi_user_scan;
|
||||
|
||||
i->t.host_attrs.ac.attrs = &i->port_attrs[0];
|
||||
|
|
|
|||
|
|
@ -159,7 +159,6 @@ extern unsigned long ata_internal_cmd_timeout(struct ata_device *dev, u8 cmd);
|
|||
extern void ata_internal_cmd_timed_out(struct ata_device *dev, u8 cmd);
|
||||
extern void ata_eh_acquire(struct ata_port *ap);
|
||||
extern void ata_eh_release(struct ata_port *ap);
|
||||
extern enum blk_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd);
|
||||
extern void ata_scsi_error(struct Scsi_Host *host);
|
||||
extern void ata_eh_fastdrain_timerfn(unsigned long arg);
|
||||
extern void ata_qc_schedule_eh(struct ata_queued_cmd *qc);
|
||||
|
|
|
|||
|
|
@ -997,6 +997,7 @@ static struct scsi_host_template iscsi_iser_sht = {
|
|||
.change_queue_depth = scsi_change_queue_depth,
|
||||
.sg_tablesize = ISCSI_ISER_DEF_SG_TABLESIZE,
|
||||
.cmd_per_lun = ISER_DEF_CMD_PER_LUN,
|
||||
.eh_timed_out = iscsi_eh_cmd_timed_out,
|
||||
.eh_abort_handler = iscsi_eh_abort,
|
||||
.eh_device_reset_handler= iscsi_eh_device_reset,
|
||||
.eh_target_reset_handler = iscsi_eh_recover_target,
|
||||
|
|
|
|||
|
|
@ -2864,6 +2864,7 @@ static struct scsi_host_template srp_template = {
|
|||
.info = srp_target_info,
|
||||
.queuecommand = srp_queuecommand,
|
||||
.change_queue_depth = srp_change_queue_depth,
|
||||
.eh_timed_out = srp_timed_out,
|
||||
.eh_abort_handler = srp_abort,
|
||||
.eh_device_reset_handler = srp_reset_device,
|
||||
.eh_host_reset_handler = srp_reset_host,
|
||||
|
|
|
|||
|
|
@ -119,6 +119,7 @@ static struct scsi_host_template mptfc_driver_template = {
|
|||
.target_destroy = mptfc_target_destroy,
|
||||
.slave_destroy = mptscsih_slave_destroy,
|
||||
.change_queue_depth = mptscsih_change_queue_depth,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = mptfc_abort,
|
||||
.eh_device_reset_handler = mptfc_dev_reset,
|
||||
.eh_bus_reset_handler = mptfc_bus_reset,
|
||||
|
|
|
|||
|
|
@ -1983,6 +1983,7 @@ static struct scsi_host_template mptsas_driver_template = {
|
|||
.target_destroy = mptsas_target_destroy,
|
||||
.slave_destroy = mptscsih_slave_destroy,
|
||||
.change_queue_depth = mptscsih_change_queue_depth,
|
||||
.eh_timed_out = mptsas_eh_timed_out,
|
||||
.eh_abort_handler = mptscsih_abort,
|
||||
.eh_device_reset_handler = mptscsih_dev_reset,
|
||||
.eh_host_reset_handler = mptscsih_host_reset,
|
||||
|
|
@ -5398,7 +5399,6 @@ mptsas_init(void)
|
|||
sas_attach_transport(&mptsas_transport_functions);
|
||||
if (!mptsas_transport_template)
|
||||
return -ENODEV;
|
||||
mptsas_transport_template->eh_timed_out = mptsas_eh_timed_out;
|
||||
|
||||
mptsasDoneCtx = mpt_register(mptscsih_io_done, MPTSAS_DRIVER,
|
||||
"mptscsih_io_done");
|
||||
|
|
|
|||
|
|
@ -330,6 +330,7 @@ static struct scsi_host_template zfcp_scsi_host_template = {
|
|||
.module = THIS_MODULE,
|
||||
.name = "zfcp",
|
||||
.queuecommand = zfcp_scsi_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = zfcp_scsi_eh_abort_handler,
|
||||
.eh_device_reset_handler = zfcp_scsi_eh_device_reset_handler,
|
||||
.eh_target_reset_handler = zfcp_scsi_eh_target_reset_handler,
|
||||
|
|
|
|||
|
|
@ -389,6 +389,7 @@ static struct scsi_host_template beiscsi_sht = {
|
|||
.change_queue_depth = scsi_change_queue_depth,
|
||||
.slave_configure = beiscsi_slave_configure,
|
||||
.target_alloc = iscsi_target_alloc,
|
||||
.eh_timed_out = iscsi_eh_cmd_timed_out,
|
||||
.eh_abort_handler = beiscsi_eh_abort,
|
||||
.eh_device_reset_handler = beiscsi_eh_device_reset,
|
||||
.eh_target_reset_handler = iscsi_eh_session_reset,
|
||||
|
|
|
|||
|
|
@ -813,6 +813,7 @@ struct scsi_host_template bfad_im_scsi_host_template = {
|
|||
.name = BFAD_DRIVER_NAME,
|
||||
.info = bfad_im_info,
|
||||
.queuecommand = bfad_im_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = bfad_im_abort_handler,
|
||||
.eh_device_reset_handler = bfad_im_reset_lun_handler,
|
||||
.eh_bus_reset_handler = bfad_im_reset_bus_handler,
|
||||
|
|
@ -835,6 +836,7 @@ struct scsi_host_template bfad_im_vport_template = {
|
|||
.name = BFAD_DRIVER_NAME,
|
||||
.info = bfad_im_info,
|
||||
.queuecommand = bfad_im_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = bfad_im_abort_handler,
|
||||
.eh_device_reset_handler = bfad_im_reset_lun_handler,
|
||||
.eh_bus_reset_handler = bfad_im_reset_bus_handler,
|
||||
|
|
|
|||
|
|
@ -2947,6 +2947,7 @@ static struct scsi_host_template bnx2fc_shost_template = {
|
|||
.module = THIS_MODULE,
|
||||
.name = "QLogic Offload FCoE Initiator",
|
||||
.queuecommand = bnx2fc_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = bnx2fc_eh_abort, /* abts */
|
||||
.eh_device_reset_handler = bnx2fc_eh_device_reset, /* lun reset */
|
||||
.eh_target_reset_handler = bnx2fc_eh_target_reset, /* tgt reset */
|
||||
|
|
|
|||
|
|
@ -2259,6 +2259,7 @@ static struct scsi_host_template bnx2i_host_template = {
|
|||
.name = "QLogic Offload iSCSI Initiator",
|
||||
.proc_name = "bnx2i",
|
||||
.queuecommand = iscsi_queuecommand,
|
||||
.eh_timed_out = iscsi_eh_cmd_timed_out,
|
||||
.eh_abort_handler = iscsi_eh_abort,
|
||||
.eh_device_reset_handler = iscsi_eh_device_reset,
|
||||
.eh_target_reset_handler = iscsi_eh_recover_target,
|
||||
|
|
|
|||
|
|
@ -2270,6 +2270,7 @@ struct scsi_host_template csio_fcoe_shost_template = {
|
|||
.name = CSIO_DRV_DESC,
|
||||
.proc_name = KBUILD_MODNAME,
|
||||
.queuecommand = csio_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = csio_eh_abort_handler,
|
||||
.eh_device_reset_handler = csio_eh_lun_reset_handler,
|
||||
.slave_alloc = csio_slave_alloc,
|
||||
|
|
@ -2289,6 +2290,7 @@ struct scsi_host_template csio_fcoe_shost_vport_template = {
|
|||
.name = CSIO_DRV_DESC,
|
||||
.proc_name = KBUILD_MODNAME,
|
||||
.queuecommand = csio_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = csio_eh_abort_handler,
|
||||
.eh_device_reset_handler = csio_eh_lun_reset_handler,
|
||||
.slave_alloc = csio_slave_alloc,
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ static struct scsi_host_template cxgb3i_host_template = {
|
|||
.sg_tablesize = SG_ALL,
|
||||
.max_sectors = 0xFFFF,
|
||||
.cmd_per_lun = ISCSI_DEF_CMD_PER_LUN,
|
||||
.eh_timed_out = iscsi_eh_cmd_timed_out,
|
||||
.eh_abort_handler = iscsi_eh_abort,
|
||||
.eh_device_reset_handler = iscsi_eh_device_reset,
|
||||
.eh_target_reset_handler = iscsi_eh_recover_target,
|
||||
|
|
|
|||
|
|
@ -103,6 +103,7 @@ static struct scsi_host_template cxgb4i_host_template = {
|
|||
.sg_tablesize = SG_ALL,
|
||||
.max_sectors = 0xFFFF,
|
||||
.cmd_per_lun = ISCSI_DEF_CMD_PER_LUN,
|
||||
.eh_timed_out = iscsi_eh_cmd_timed_out,
|
||||
.eh_abort_handler = iscsi_eh_abort,
|
||||
.eh_device_reset_handler = iscsi_eh_device_reset,
|
||||
.eh_target_reset_handler = iscsi_eh_recover_target,
|
||||
|
|
|
|||
|
|
@ -277,6 +277,7 @@ static struct scsi_host_template fcoe_shost_template = {
|
|||
.name = "FCoE Driver",
|
||||
.proc_name = FCOE_NAME,
|
||||
.queuecommand = fc_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = fc_eh_abort,
|
||||
.eh_device_reset_handler = fc_eh_device_reset,
|
||||
.eh_host_reset_handler = fc_eh_host_reset,
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@ static struct scsi_host_template fnic_host_template = {
|
|||
.module = THIS_MODULE,
|
||||
.name = DRV_NAME,
|
||||
.queuecommand = fnic_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = fnic_abort_cmd,
|
||||
.eh_device_reset_handler = fnic_device_reset,
|
||||
.eh_host_reset_handler = fnic_host_reset,
|
||||
|
|
|
|||
|
|
@ -3090,6 +3090,7 @@ static struct scsi_host_template driver_template = {
|
|||
.name = "IBM POWER Virtual FC Adapter",
|
||||
.proc_name = IBMVFC_NAME,
|
||||
.queuecommand = ibmvfc_queuecommand,
|
||||
.eh_timed_out = fc_eh_timed_out,
|
||||
.eh_abort_handler = ibmvfc_eh_abort_handler,
|
||||
.eh_device_reset_handler = ibmvfc_eh_device_reset_handler,
|
||||
.eh_target_reset_handler = ibmvfc_eh_target_reset_handler,
|
||||
|
|
|
|||
|
|
@ -2072,6 +2072,7 @@ static struct scsi_host_template driver_template = {
|
|||
.name = "IBM POWER Virtual SCSI Adapter " IBMVSCSI_VERSION,
|
||||
.proc_name = "ibmvscsi",
|
||||
.queuecommand = ibmvscsi_queuecommand,
|
||||
.eh_timed_out = srp_timed_out,
|
||||
.eh_abort_handler = ibmvscsi_eh_abort_handler,
|
||||
.eh_device_reset_handler = ibmvscsi_eh_device_reset_handler,
|
||||
.eh_host_reset_handler = ibmvscsi_eh_host_reset_handler,
|
||||
|
|
|
|||
|
|
@ -967,6 +967,7 @@ static struct scsi_host_template iscsi_sw_tcp_sht = {
|
|||
.sg_tablesize = 4096,
|
||||
.max_sectors = 0xFFFF,
|
||||
.cmd_per_lun = ISCSI_DEF_CMD_PER_LUN,
|
||||
.eh_timed_out = iscsi_eh_cmd_timed_out,
|
||||
.eh_abort_handler = iscsi_eh_abort,
|
||||
.eh_device_reset_handler= iscsi_eh_device_reset,
|
||||
.eh_target_reset_handler = iscsi_eh_recover_target,
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue