aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_ext.h
diff options
context:
space:
mode:
authorSwen Schillig <swen@vnet.ibm.com>2009-11-24 10:54:06 -0500
committerJames Bottomley <James.Bottomley@suse.de>2009-12-04 13:02:08 -0500
commit9eae07ef6bb5988163d8bb82cd952905db47b721 (patch)
tree97a7f5c98c760b6232e5cdb60e5da58414079981 /drivers/s390/scsi/zfcp_ext.h
parent6b183334c23969d52d4d9f775da554480d05ca4d (diff)
[SCSI] zfcp: Assign scheduled work to driver queue
The port_scan work was scheduled to the work_queue provided by the kernel. This resulted on SMP systems to a likely situation that more than one scan_work were processed in parallel. This is not required and openes the possibility of race conditions between the removal of invalid ports and the enqueue of just scanned ports. This patch synchronizes the scan_work tasks by scheduling them to adapter local work_queue. Signed-off-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.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h
index 5f205f85e6f9..d372146af38d 100644
--- a/drivers/s390/scsi/zfcp_ext.h
+++ b/drivers/s390/scsi/zfcp_ext.h
@@ -94,8 +94,7 @@ extern void zfcp_erp_adapter_access_changed(struct zfcp_adapter *, char *,
94extern void zfcp_erp_timeout_handler(unsigned long); 94extern void zfcp_erp_timeout_handler(unsigned long);
95 95
96/* zfcp_fc.c */ 96/* zfcp_fc.c */
97extern int zfcp_fc_scan_ports(struct zfcp_adapter *); 97extern void zfcp_fc_scan_ports(struct work_struct *);
98extern void _zfcp_fc_scan_ports_later(struct work_struct *);
99extern void zfcp_fc_incoming_els(struct zfcp_fsf_req *); 98extern void zfcp_fc_incoming_els(struct zfcp_fsf_req *);
100extern void zfcp_fc_port_did_lookup(struct work_struct *); 99extern void zfcp_fc_port_did_lookup(struct work_struct *);
101extern void zfcp_fc_trigger_did_lookup(struct zfcp_port *); 100extern void zfcp_fc_trigger_did_lookup(struct zfcp_port *);