diff options
author | Christof Schmitt <christof.schmitt@de.ibm.com> | 2009-08-18 09:43:20 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-09-05 09:49:28 -0400 |
commit | 799b76d09aeee558d18c1f5b93e63f58f1d1fc11 (patch) | |
tree | a1a05faa773b329246a4fa97ba7c0ac5201b5d40 /drivers/s390/scsi/zfcp_ext.h | |
parent | 564e1c86c810f9ccfe4300afa402815e3db4886d (diff) |
[SCSI] zfcp: Decouple gid_pn requests from erp
Don't let the erp wait for gid_pn requests to complete. Instead, queue
the gid_pn work, exit erp and let the finished gid_pn work trigger a
new port reopen.
Reviewed-by: Swen Schillig <swen@vnet.ibm.com>
Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi/zfcp_ext.h')
-rw-r--r-- | drivers/s390/scsi/zfcp_ext.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h index e97947d2f2ed..7650cec7f71f 100644 --- a/drivers/s390/scsi/zfcp_ext.h +++ b/drivers/s390/scsi/zfcp_ext.h | |||
@@ -94,13 +94,12 @@ extern void zfcp_erp_unit_access_denied(struct zfcp_unit *, char *, void *); | |||
94 | extern void zfcp_erp_adapter_access_changed(struct zfcp_adapter *, char *, | 94 | extern void zfcp_erp_adapter_access_changed(struct zfcp_adapter *, char *, |
95 | void *); | 95 | void *); |
96 | extern void zfcp_erp_timeout_handler(unsigned long); | 96 | extern void zfcp_erp_timeout_handler(unsigned long); |
97 | extern void zfcp_erp_port_strategy_open_lookup(struct work_struct *); | ||
98 | 97 | ||
99 | /* zfcp_fc.c */ | 98 | /* zfcp_fc.c */ |
100 | extern int zfcp_scan_ports(struct zfcp_adapter *); | 99 | extern int zfcp_scan_ports(struct zfcp_adapter *); |
101 | extern void _zfcp_scan_ports_later(struct work_struct *); | 100 | extern void _zfcp_scan_ports_later(struct work_struct *); |
102 | extern void zfcp_fc_incoming_els(struct zfcp_fsf_req *); | 101 | extern void zfcp_fc_incoming_els(struct zfcp_fsf_req *); |
103 | extern int zfcp_fc_ns_gid_pn(struct zfcp_erp_action *); | 102 | extern void zfcp_fc_port_did_lookup(struct work_struct *); |
104 | extern void zfcp_fc_plogi_evaluate(struct zfcp_port *, struct fsf_plogi *); | 103 | extern void zfcp_fc_plogi_evaluate(struct zfcp_port *, struct fsf_plogi *); |
105 | extern void zfcp_test_link(struct zfcp_port *); | 104 | extern void zfcp_test_link(struct zfcp_port *); |
106 | extern void zfcp_fc_link_test_work(struct work_struct *); | 105 | extern void zfcp_fc_link_test_work(struct work_struct *); |
@@ -128,8 +127,7 @@ extern struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *, | |||
128 | extern void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *); | 127 | extern void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *); |
129 | extern int zfcp_fsf_status_read(struct zfcp_qdio *); | 128 | extern int zfcp_fsf_status_read(struct zfcp_qdio *); |
130 | extern int zfcp_status_read_refill(struct zfcp_adapter *adapter); | 129 | extern int zfcp_status_read_refill(struct zfcp_adapter *adapter); |
131 | extern int zfcp_fsf_send_ct(struct zfcp_send_ct *, mempool_t *, | 130 | extern int zfcp_fsf_send_ct(struct zfcp_send_ct *, mempool_t *); |
132 | struct zfcp_erp_action *); | ||
133 | extern int zfcp_fsf_send_els(struct zfcp_send_els *); | 131 | extern int zfcp_fsf_send_els(struct zfcp_send_els *); |
134 | extern int zfcp_fsf_send_fcp_command_task(struct zfcp_unit *, | 132 | extern int zfcp_fsf_send_fcp_command_task(struct zfcp_unit *, |
135 | struct scsi_cmnd *); | 133 | struct scsi_cmnd *); |