From: Kiran Patil <[email protected]>
Problem: VN2VN connection setup between initiator and target is failing because
both
side (initiator and target) failed to respond to FLOGI.
Reason: If RPORT is in state INIT and receives FLOGI request,
function fc_rport.c:fc_rport_recv_flogi_req rejects
FIP (FLOGI) request, hence VN2VN (point to point) connection setup
fails.
Fix: It is normal and expected the state of RPORT (which are created after
discovery)
to be INIT. Allow RPORT state machine to continue and accept FLOGI
requests
instead of rejecting it.
Technical Details: N/A
Signed-off-by: Kiran Patil <[email protected]>
---
drivers/scsi/libfc/fc_rport.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
index ed84b59..b04f939 100644
--- a/drivers/scsi/libfc/fc_rport.c
+++ b/drivers/scsi/libfc/fc_rport.c
@@ -787,12 +787,17 @@ static void fc_rport_recv_flogi_req(struct fc_lport
*lport,
fc_rport_state(rdata));
switch (rdata->rp_state) {
- case RPORT_ST_INIT:
case RPORT_ST_DELETE:
mutex_unlock(&rdata->rp_mutex);
rjt_data.reason = ELS_RJT_FIP;
rjt_data.explan = ELS_EXPL_NOT_NEIGHBOR;
goto reject;
+ /*
+ * Moved RPORT_ST_INIT case here, to allow RPORT state machine to
+ * continue instead of rejecting the FIP if state of RPORT is INIT
+ * (which is normal)
+ */
+ case RPORT_ST_INIT:
case RPORT_ST_FLOGI:
case RPORT_ST_PLOGI_WAIT:
case RPORT_ST_PLOGI:
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel