• Jeff Layton's avatar
    cifs: prevent infinite recursion in cifs_reconnect_tcon · f569599a
    Jeff Layton authored
    cifs_reconnect_tcon is called from smb_init. After a successful
    reconnect, cifs_reconnect_tcon will call reset_cifs_unix_caps. That
    function will, in turn call CIFSSMBQFSUnixInfo and CIFSSMBSetFSUnixInfo.
    Those functions also call smb_init.
    
    It's possible for the session and tcon reconnect to succeed, and then
    for another cifs_reconnect to occur before CIFSSMBQFSUnixInfo or
    CIFSSMBSetFSUnixInfo to be called. That'll cause those functions to call
    smb_init and cifs_reconnect_tcon again, ad infinitum...
    
    Break the infinite recursion by having those functions use a new
    smb_init variant that doesn't attempt to perform a reconnect.
    Reported-and-Tested-by: default avatarMichal Suchanek <hramrach@centrum.cz>
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
    f569599a
cifssmb.c 171 KB