summaryrefslogtreecommitdiff
path: root/drivers/s390/scsi/zfcp_scsi.c
diff options
context:
space:
mode:
authorSwen Schillig <swen@vnet.ibm.com>2009-08-18 13:43:17 (GMT)
committerJames Bottomley <James.Bottomley@suse.de>2009-09-05 13:49:23 (GMT)
commit4544683a4b1d4e65ccca8c736bac56a195a5206b (patch)
tree0d536db8c6820405b69768922a8a61b8d1dcf00c /drivers/s390/scsi/zfcp_scsi.c
parent09a46c6e34ba152169b7400d266d2efb4c391a43 (diff)
downloadlinux-4544683a4b1d4e65ccca8c736bac56a195a5206b.tar.xz
[SCSI] zfcp: Move workqueue to adapter struct
Remove the global driver work queue and replace it with a workqueue local to the adapter. The usage of this workqueue makes this the correct place for the structure. In addition multiple adapters won't block each other due to the serialization of the queued work. 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_scsi.c')
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index 0de0591..2e13d41 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -572,7 +572,7 @@ void zfcp_scsi_schedule_rport_register(struct zfcp_port *port)
zfcp_port_get(port);
port->rport_task = RPORT_ADD;
- if (!queue_work(zfcp_data.work_queue, &port->rport_work))
+ if (!queue_work(port->adapter->work_queue, &port->rport_work))
zfcp_port_put(port);
}
@@ -581,7 +581,8 @@ void zfcp_scsi_schedule_rport_block(struct zfcp_port *port)
zfcp_port_get(port);
port->rport_task = RPORT_DEL;
- if (port->rport && queue_work(zfcp_data.work_queue, &port->rport_work))
+ if (port->rport && queue_work(port->adapter->work_queue,
+ &port->rport_work))
return;
zfcp_port_put(port);