aboutsummaryrefslogtreecommitdiff
path: root/fs/smb/client/cifsglob.h
diff options
context:
space:
mode:
authorGravatar Steve French <stfrench@microsoft.com> 2024-04-04 18:06:56 -0500
committerGravatar Steve French <stfrench@microsoft.com> 2024-04-11 16:03:48 -0500
commit35f834265e0dc78b003aa0d1af65cafb89666b76 (patch)
treed74cae8847f16de62f5b3e0e44832ee43b461156 /fs/smb/client/cifsglob.h
parentsmb: client: instantiate when creating SFU files (diff)
downloadlinux-35f834265e0dc78b003aa0d1af65cafb89666b76.tar.gz
linux-35f834265e0dc78b003aa0d1af65cafb89666b76.tar.bz2
linux-35f834265e0dc78b003aa0d1af65cafb89666b76.zip
smb3: fix broken reconnect when password changing on the server by allowing password rotation
There are various use cases that are becoming more common in which password changes are scheduled on a server(s) periodically but the clients connected to this server need to stay connected (even in the face of brief network reconnects) due to mounts which can not be easily unmounted and mounted at will, and servers that do password rotation do not always have the ability to tell the clients exactly when to the new password will be effective, so add support for an alt password ("password2=") on mount (and also remount) so that we can anticipate the upcoming change to the server without risking breaking existing mounts. An alternative would have been to use the kernel keyring for this but the processes doing the reconnect do not have access to the keyring but do have access to the ses structure. Reviewed-by: Bharath SM <bharathsm@microsoft.com> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/client/cifsglob.h')
-rw-r--r--fs/smb/client/cifsglob.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/smb/client/cifsglob.h b/fs/smb/client/cifsglob.h
index f6a302205f89..d6669ce4ae87 100644
--- a/fs/smb/client/cifsglob.h
+++ b/fs/smb/client/cifsglob.h
@@ -1077,6 +1077,7 @@ struct cifs_ses {
and after mount option parsing we fill it */
char *domainName;
char *password;
+ char *password2; /* When key rotation used, new password may be set before it expires */
char workstation_name[CIFS_MAX_WORKSTATION_LEN];
struct session_key auth_key;
struct ntlmssp_auth *ntlmssp; /* ciphertext, flags, server challenge */