[SCSI] libfc: use ADISC to verify rport login state
authorJoe Eykholt <jeykholt@cisco.com>
Tue, 25 Aug 2009 21:03:47 +0000 (14:03 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 10 Sep 2009 17:08:02 +0000 (12:08 -0500)
commit370c3bd05cf02afabea9cd3f2de66202d6b516dc
tree832cf6b3091db117f119aa8692d050f43fe0a9cb
parent68a1750b46ad5177f7703081b5fe85624f1aa62b
[SCSI] libfc: use ADISC to verify rport login state

When rport_login is called on an rport that is already thought
to be logged in, use ADISC.  If that fails, redo PLOGI.
This is less disruptive after fabric changes that don't affect
the state of the target.

Implement the sending of ADISC via fc_els_fill.

Add ADISC state to the rport state machine.  This is entered from READY
and returns to READY after successful completion.  If it fails, the rport
is either logged off and deleted or re-does PLOGI.

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
include/scsi/fc_encode.h
include/scsi/libfc.h