fs/cifs: reopen persistent handles on reconnect
Continuous Availability features like persistent handles require that clients reconnect their open files, not just the sessions, soon after the network connection comes back up, otherwise the server will throw away the state (byte range locks, leases, deny modes) on those handles after a timeout. Add code to reconnect handles when use_persistent set (e.g. Continuous Availability shares) after tree reconnect. Signed-off-by: Aurelien Aptel <aaptel@suse.com> Reviewed-by: Germano Percossi <germano.percossi@citrix.com> Signed-off-by: Steve French <smfrench@gmail.com>
This commit is contained in:
@@ -250,8 +250,13 @@ smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon)
|
||||
}
|
||||
|
||||
cifs_mark_open_files_invalid(tcon);
|
||||
|
||||
rc = SMB2_tcon(0, tcon->ses, tcon->treeName, tcon, nls_codepage);
|
||||
mutex_unlock(&tcon->ses->session_mutex);
|
||||
|
||||
if (tcon->use_persistent)
|
||||
cifs_reopen_persistent_handles(tcon);
|
||||
|
||||
cifs_dbg(FYI, "reconnect tcon rc = %d\n", rc);
|
||||
if (rc)
|
||||
goto out;
|
||||
|
Reference in New Issue
Block a user