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:

committed by
Martin K. Petersen

parent
28917d40e6
commit
b6a05c823f
@@ -2055,7 +2055,7 @@ static int fc_vport_match(struct attribute_container *cont,
|
||||
|
||||
|
||||
/**
|
||||
* fc_timed_out - FC Transport I/O timeout intercept handler
|
||||
* fc_eh_timed_out - FC Transport I/O timeout intercept handler
|
||||
* @scmd: The SCSI command which timed out
|
||||
*
|
||||
* This routine protects against error handlers getting invoked while a
|
||||
@@ -2076,8 +2076,8 @@ static int fc_vport_match(struct attribute_container *cont,
|
||||
* Notes:
|
||||
* This routine assumes no locks are held on entry.
|
||||
*/
|
||||
static enum blk_eh_timer_return
|
||||
fc_timed_out(struct scsi_cmnd *scmd)
|
||||
enum blk_eh_timer_return
|
||||
fc_eh_timed_out(struct scsi_cmnd *scmd)
|
||||
{
|
||||
struct fc_rport *rport = starget_to_rport(scsi_target(scmd->device));
|
||||
|
||||
@@ -2086,6 +2086,7 @@ fc_timed_out(struct scsi_cmnd *scmd)
|
||||
|
||||
return BLK_EH_NOT_HANDLED;
|
||||
}
|
||||
EXPORT_SYMBOL(fc_eh_timed_out);
|
||||
|
||||
/*
|
||||
* Called by fc_user_scan to locate an rport on the shost that
|
||||
@@ -2211,8 +2212,6 @@ fc_attach_transport(struct fc_function_template *ft)
|
||||
/* Transport uses the shost workq for scsi scanning */
|
||||
i->t.create_work_queue = 1;
|
||||
|
||||
i->t.eh_timed_out = fc_timed_out;
|
||||
|
||||
i->t.user_scan = fc_user_scan;
|
||||
|
||||
/* target-mode drivers' functions */
|
||||
|
Reference in New Issue
Block a user