Re: [PATCH 06/20] qla2xxx: Delete session if initiator is gone from FW

Hannes Reinecke
2015-12-08T15:58:04Z

On 12/08/2015 01:48 AM, Himanshu Madhani wrote:
> From: Alexei Potashnik <alexei@purestorage.com>
>
> 1. Initiator A is logged in with fc_id(1)/loop_id(1)
> 2. Initiator A re-logs in with fc_id(2)/loop_id(2)
> 3. Part of old session deletion async logoout for 1/1 is queued
> 4. Initiator B logs in with fc_id(1)/loop_id(1), starts
> passing data and creates session.
> 5. Async logo from 3 is processed by DPC and sent to FW
>
> Now initiator B has the session but is logged out from FW.
>
> This condition is detected first with CTIO error 29 at which
> point we should delete current session. During session
> deletion we will send LOGO to initiator to force re-login.
>
> Under rare circumstances initiator might be logged out of FW,
> not have driver session, but still think it's logged in.
> E.g. the above sequence plus session deletion due to re-config.
> Incoming commands will fail to create local session because
> initiator is not found in FW. In this case we also issue LOGO
> to initiator to force him re-login.
>
> Finally this patch fixes exchange leak when commands where
> received in logged out state. In this case loop_id must be
> set to FFFF when corresponding exchange is terminated. The
> patch modifies exchange termination to always use FFFF,
> since in certain scenarios it's impossible to tell whether
> command was received in logged in or logged out state.
>
> Signed-off-by: Alexei Potashnik <alexei@purestorage.com>
> Acked-by: Quinn Tran <quinn.tran@qlogic.com>
> Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
> ---
Reviewed-by: Hannes Reinecke <hare@suse.com>

Cheers,

Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html