summaryrefslogtreecommitdiff
path: root/drivers/scsi/fcoe/fcoe_transport.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-01-29 03:05:32 +0300
committerJames Bottomley <James.Bottomley@suse.de>2011-02-12 20:17:50 +0300
commit2ca32b4848a865fb088e8c00af0dc194701c373a (patch)
tree935d1a9f72f7cf1d6642ae2b427ea73108b3d8e6 /drivers/scsi/fcoe/fcoe_transport.c
parent75a2792df296c77004a72056c76628a1f835bc93 (diff)
downloadlinux-2ca32b4848a865fb088e8c00af0dc194701c373a.tar.xz
[SCSI] fcoe: use dedicated workqueue instead of system_wq
fcoe uses the system_wq to destroy ports and the work items need to be flushed before the driver is unloaded. As the work items free the containing data structure, they can't be flushed directly. The workqueue should be flushed instead. Also, the destruction works can be chained - ie. destruction of a port may lead to destruction of another port where the work item for the former queues the work for the latter. Currently, the depth of chain can be at most two and fcoe_exit() makes sure everything is complete by calling flush_scheduled_work() twice. With commit c8efcc25 (workqueue: allow chained queueing during destruction), destroy_workqueue() can take care of chained works on workqueue destruction. Add and use fcoe_wq instead. Simply destroying fcoe_wq on driver unload takes care of flushing. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/fcoe/fcoe_transport.c')
0 files changed, 0 insertions, 0 deletions