From: Vasu Dev <[email protected]>

The FC-GS-3 sepc requires to wait for least 3 times R_A_TOV per
sec 4.6.1 "If the Requesting_CT does not receive a Response
CT_IU from the Responding_CT within three times R_A_TOV,
it shall consider this to be a protocol error."

This means added four new states with management server
could add significant delay with multiple retries
on default 12 second timeout(3 * R_A_TOV), so instead
just skip these states on very first timeout on any of
these states to not stuck with states for such longer
period.

Signed-off-by: Vasu Dev <[email protected]>
Tested-by: Marcus Dennis <[email protected]>
Signed-off-by: Robert Love <[email protected]>
---
 drivers/scsi/libfc/fc_lport.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index c1402fb..45b24a4 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -1590,8 +1590,9 @@ static void fc_lport_timeout(struct work_struct *work)
        case LPORT_ST_RPA:
        case LPORT_ST_DHBA:
        case LPORT_ST_DPRT:
-               fc_lport_enter_ms(lport, lport->state);
-               break;
+               FC_LPORT_DBG(lport, "Skipping lport state %s to SCR\n",
+                            fc_lport_state(lport));
+               /* fall thru */
        case LPORT_ST_SCR:
                fc_lport_enter_scr(lport);
                break;

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to