[SCSI] libfc: fix rport event race between READY and LOGO
authorJoe Eykholt <jeykholt@cisco.com>
Tue, 25 Aug 2009 21:01:23 +0000 (14:01 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 10 Sep 2009 17:07:44 +0000 (12:07 -0500)
commit00fea930d404b9a9039291d5a61975e6c2ea974e
treec2d2c32117e74eefdd8876d6903c936cbaf51e06
parent9e9d0452fe12115b1c1883c0d4d2ee509079791b
[SCSI] libfc: fix rport event race between READY and LOGO

When a remote port becomes ready and a LOGO is received before
the READY event is in rport_work waiting on the mutex, the
event is changed to LOGO and the work queued, so both the
calls to rport_work see the LOGO event, and both try to do
the list_del(), causing a crash.

Don't change the event if it is already set.

Signed-off-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_rport.c