• Jeff Layton's avatar
    cifs: don't send an echo request unless NegProt has been done · 247ec9b4
    Jeff Layton authored
    When the socket to the server is disconnected, the client more or less
    immediately calls cifs_reconnect to reconnect the socket. The NegProt
    and SessSetup however are not done until an actual call needs to be
    made.
    
    With the addition of the SMB echo code, it's possible that the server
    will initiate a disconnect on an idle socket. The client will then
    reconnect the socket but no NegotiateProtocol request is done. The
    SMBEcho workqueue job will then eventually pop, and an SMBEcho will be
    sent on the socket. The server will then reject it since no NegProt was
    done.
    
    The ideal fix would be to either have the socket not be reconnected
    until we plan to use it, or to immediately do a NegProt when the
    reconnect occurs. The code is not structured for this however. For now
    we must just settle for not sending any echoes until the NegProt is
    done.
    Reported-by: default avatarJG <jg@cms.ac>
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
    247ec9b4
connect.c 96.5 KB