aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_fsf.c
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_fsf.c
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_fsf.c')
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 5eb96052941a..b6f12c826b79 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -287,7 +287,7 @@ static void zfcp_fsf_status_read_handler(struct zfcp_fsf_req *req)
287 zfcp_erp_adapter_access_changed(adapter, "fssrh_3", 287 zfcp_erp_adapter_access_changed(adapter, "fssrh_3",
288 req); 288 req);
289 if (sr_buf->status_subtype & FSF_STATUS_READ_SUB_INCOMING_ELS) 289 if (sr_buf->status_subtype & FSF_STATUS_READ_SUB_INCOMING_ELS)
290 schedule_work(&adapter->scan_work); 290 queue_work(adapter->work_queue, &adapter->scan_work);
291 break; 291 break;
292 case FSF_STATUS_READ_CFDC_UPDATED: 292 case FSF_STATUS_READ_CFDC_UPDATED:
293 zfcp_erp_adapter_access_changed(adapter, "fssrh_4", req); 293 zfcp_erp_adapter_access_changed(adapter, "fssrh_4", req);