Files
linux/drivers
Gal Rosen 81bcb49360 SCSI: scsi_transport_fc: Fix synchronization issue while deleting vport
commit 0d9dc7c8b9 upstream.

The issue occur while deleting 60 virtual ports through the sys
interface /sys/class/fc_vports/vport-X/vport_delete. It happen while in
a mistake each request sent twice for the same vport. This interface is
asynchronous, entering the delete request into a work queue, allowing
more than one request to enter to the delete work queue. The result is a
NULL pointer. The first request already delete the vport, while the
second request got a pointer to the vport before the device destroyed.
Re-create vport later cause system freeze.

Solution: Check vport flags before entering the request to the work queue.

[jejb: fixed int<->long problem on spinlock flags variable]
Signed-off-by: Gal Rosen <galr@storwize.com>
Acked-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-04-01 15:58:28 -07:00
..
2010-03-15 08:49:54 -07:00
2009-12-18 14:05:04 -08:00
2010-02-09 04:50:48 -08:00
2009-11-12 07:26:01 -08:00
2010-02-23 07:37:54 -08:00
2009-12-18 14:03:24 -08:00
2010-04-01 15:58:13 -07:00
2010-01-18 10:19:44 -08:00