On 12/18/2013 12:47 AM, Vaughan Cao wrote:
> We do a normal login/logout process to iscsi server. iscsiadm report success,
> but we always see the following error just before conn shutdown in dmesg.
> 
> Oct 15 05:30:09 vmhodtest019 iscsid: Connection1:0 to [target:
> iqn.1986-03.com.sun:02:7b863a18-045a-cb04-c686-841f17df2f9c, portal:
> 10.182.32.162,3260] through [iface: default] is operational now
> Oct 15 05:30:42 vmhodtest019 kernel:  connection1:0: detected conn error
> (1020)
> Oct 15 05:30:42 vmhodtest019 iscsid: Connection1:0 to [target:
> iqn.1986-03.com.sun:02:7b863a18-045a-cb04-c686-841f17df2f9c, portal:
> 10.182.32.162,3260] through [iface: default] is shutdown.
> 
> It's because iscsi_tcp module evaluates socket state in data_ready() callback,
>  and that detect the socket close. However, this socket close on target peer 
> is in response to the logout request from initiator. So this is not an error 
> that should be reported out. I quiesce it by checking session state and err 
> value accordingly.
> 
> Signed-off-by: Vaughan Cao <vaughan....@oracle.com>
> ---
>  drivers/scsi/libiscsi.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
> index 415f2c0..84171ef 100644
> --- a/drivers/scsi/libiscsi.c
> +++ b/drivers/scsi/libiscsi.c
> @@ -1360,6 +1360,12 @@ void iscsi_conn_failure(struct iscsi_conn *conn, enum 
> iscsi_err err)
>               spin_unlock_bh(&session->lock);
>               return;
>       }
> +     /* Target closed the connection in response to logout */
> +     if (session->state == ISCSI_STATE_LOGGING_OUT &&
> +             err == ISCSI_ERR_TCP_CONN_CLOSE) {
> +             spin_unlock_bh(&session->lock);
> +             return;
> +     }
>  
>       if (conn->stop_stage == 0)
>               session->state = ISCSI_STATE_FAILED;
> 


Someone just sent a patch for this.

commit c712495e687e221b00bddae96247dbf6ffbc6200
Author: Chris Leech <cle...@redhat.com>
Date:   Thu Sep 26 09:09:44 2013 -0700

    [SCSI] iscsi_tcp: consider session state in iscsi_sw_sk_state_check


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to