Re: [PATCH 6/6 V3] libiscsi: reset max/exp cmdsn during recovery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/20/20 6:37 PM, Mike Christie wrote:
> If we lose the session then relogin, but the new cmdsn window has
> shrunk (due to something like an admin changing a setting) we will
> have the old exp/max_cmdsn values and will never be able to update
> them. For example, max_cmdsn would be 64, but if on the target the
> user set the window to be smaller then the target could try to return
> the max_cmdsn as 32. We will see that new max_cmdsn in the rsp but
> because it's lower than the old max_cmdsn when the window was larger
> we will not update it.
> 
> So this patch has us reset the windown values during session
> cleanup so they can be updated after a new login.
> 
> Signed-off-by: Mike Christie <michael.christie@xxxxxxxxxx>
> ---
>  drivers/scsi/libiscsi.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
> index f1ade91..ff6ba78 100644
> --- a/drivers/scsi/libiscsi.c
> +++ b/drivers/scsi/libiscsi.c
> @@ -3268,6 +3268,13 @@ int iscsi_conn_bind(struct iscsi_cls_session *cls_session,
>  	spin_unlock_bh(&session->frwd_lock);
>  
>  	/*
> +	 * The target could have reduced it's window size between logins, so
> +	 * we have to reset max/exp cmdsn so we can see the new values.
> +	 */
> +	spin_lock_bh(&session->back_lock);
> +	session->max_cmdsn = session->exp_cmdsn = session->cmdsn + 1;
> +	spin_unlock_bh(&session->back_lock);
> +	/*
>  	 * Unblock xmitworker(), Login Phase will pass through.
>  	 */
>  	clear_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx);
> 

Reviewed-by: Lee Duncan <lduncan@xxxxxxxx>




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux