Hi Pavel, I have one comment/question. On 07/08/2017 10:32 PM, Pavel Shilovsky wrote: > According to the MS-SMB2 spec (3.2.5.1.6) once the client receives > STATUS_NETWORK_SESSION_EXPIRED error code from a server it should > reconnect the current SMB session. Currently the client doesn't do > that. This can result in subsequent client requests failing by > the server. The patch adds an additional logic to the demultiplex > thread to identify expired sessions and reconnect them. > > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Pavel Shilovsky <pshilov@xxxxxxxxxxxxx> > --- > fs/cifs/cifsglob.h | 2 ++ > fs/cifs/cifssmb.c | 7 +++++++ > fs/cifs/connect.c | 7 +++++++ > fs/cifs/smb2ops.c | 23 +++++++++++++++++++++++ > 4 files changed, 39 insertions(+) > [cut] > diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c > index fbb0d4c..72a53bd 100644 > --- a/fs/cifs/cifssmb.c > +++ b/fs/cifs/cifssmb.c > @@ -1460,6 +1460,13 @@ cifs_readv_receive(struct TCP_Server_Info *server, struct mid_q_entry *mid) > return length; > server->total_read += length; > > + if (server->ops->is_session_expired && > + server->ops->is_session_expired(buf)) { > + cifs_reconnect(server); > + wake_up(&server->response_q); > + return -1; > + } > + Here (but the same applied to the other similar code blocks), as soon as the session is found expired, there is an attempt to reconnect and -1 is returned, regardless of the reconnect outcome. However, according to the specs, if the re-authentication attempt fails the client must fail the operation and terminate the session. Is the latter done implicitly, because I cannot see it? Cheers, Germano -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html