diff options
author | Andreas Herrmann <aherrman@de.ibm.com> | 2006-05-22 12:25:56 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-05-28 12:50:17 -0400 |
commit | 338151e066084d92d89f44311e5521ef847a50b9 (patch) | |
tree | 5783d26710203f2c5b309530334f3dd39ca68dfc /drivers/s390/scsi/zfcp_scsi.c | |
parent | 75bfc2837bbcc329193d51e8b7115184b78beae0 (diff) |
[SCSI] zfcp: make use of fc_remote_port_delete when target port is unavailable
If zfcp's port erp fails we now call fc_remote_port_delete. This helps
to avoid offlined scsi devices if scsi commands time out due to path
failures. When an adapter erp fails we call fc_remote_port_delete for
all ports on that adapter.
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_scsi.c')
-rw-r--r-- | drivers/s390/scsi/zfcp_scsi.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c index 30e87197f5f8..46e14f22ec18 100644 --- a/drivers/s390/scsi/zfcp_scsi.c +++ b/drivers/s390/scsi/zfcp_scsi.c | |||
@@ -800,12 +800,18 @@ zfcp_reset_fc_host_stats(struct Scsi_Host *shost) | |||
800 | } | 800 | } |
801 | } | 801 | } |
802 | 802 | ||
803 | static void zfcp_set_rport_dev_loss_tmo(struct fc_rport *rport, u32 timeout) | ||
804 | { | ||
805 | rport->dev_loss_tmo = timeout; | ||
806 | } | ||
807 | |||
803 | struct fc_function_template zfcp_transport_functions = { | 808 | struct fc_function_template zfcp_transport_functions = { |
804 | .show_starget_port_id = 1, | 809 | .show_starget_port_id = 1, |
805 | .show_starget_port_name = 1, | 810 | .show_starget_port_name = 1, |
806 | .show_starget_node_name = 1, | 811 | .show_starget_node_name = 1, |
807 | .show_rport_supported_classes = 1, | 812 | .show_rport_supported_classes = 1, |
808 | .show_rport_maxframe_size = 1, | 813 | .show_rport_maxframe_size = 1, |
814 | .show_rport_dev_loss_tmo = 1, | ||
809 | .show_host_node_name = 1, | 815 | .show_host_node_name = 1, |
810 | .show_host_port_name = 1, | 816 | .show_host_port_name = 1, |
811 | .show_host_permanent_port_name = 1, | 817 | .show_host_permanent_port_name = 1, |
@@ -815,6 +821,7 @@ struct fc_function_template zfcp_transport_functions = { | |||
815 | .show_host_serial_number = 1, | 821 | .show_host_serial_number = 1, |
816 | .get_fc_host_stats = zfcp_get_fc_host_stats, | 822 | .get_fc_host_stats = zfcp_get_fc_host_stats, |
817 | .reset_fc_host_stats = zfcp_reset_fc_host_stats, | 823 | .reset_fc_host_stats = zfcp_reset_fc_host_stats, |
824 | .set_rport_dev_loss_tmo = zfcp_set_rport_dev_loss_tmo, | ||
818 | /* no functions registered for following dynamic attributes but | 825 | /* no functions registered for following dynamic attributes but |
819 | directly set by LLDD */ | 826 | directly set by LLDD */ |
820 | .show_host_port_type = 1, | 827 | .show_host_port_type = 1, |