diff options
author | Paulo Alcantara <pc@manguebit.com> | 2023-03-14 20:32:53 -0300 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2023-03-14 21:05:53 -0500 |
commit | b56bce502f55505a97e381d546ee881928183126 (patch) | |
tree | f26b519515e2423fa65b515c23eeefc46e35f124 /fs/cifs/dfs.h | |
parent | 05ce0448c3f36febd8db0ee0e9e16557f3ab5ee8 (diff) | |
download | linux-b56bce502f55505a97e381d546ee881928183126.tar.gz linux-b56bce502f55505a97e381d546ee881928183126.tar.bz2 linux-b56bce502f55505a97e381d546ee881928183126.zip |
cifs: set DFS root session in cifs_get_smb_ses()
Set the DFS root session pointer earlier when creating a new SMB
session to prevent racing with smb2_reconnect(), cifs_reconnect_tcon()
and DFS cache refresher.
Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Cc: stable@vger.kernel.org # 6.2
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/dfs.h')
-rw-r--r-- | fs/cifs/dfs.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/cifs/dfs.h b/fs/cifs/dfs.h index 344bea6d8bab..baf16df55d7e 100644 --- a/fs/cifs/dfs.h +++ b/fs/cifs/dfs.h @@ -22,9 +22,10 @@ static inline char *dfs_get_path(struct cifs_sb_info *cifs_sb, const char *path) static inline int dfs_get_referral(struct cifs_mount_ctx *mnt_ctx, const char *path, struct dfs_info3_param *ref, struct dfs_cache_tgt_list *tl) { + struct smb3_fs_context *ctx = mnt_ctx->fs_ctx; struct cifs_sb_info *cifs_sb = mnt_ctx->cifs_sb; - return dfs_cache_find(mnt_ctx->xid, mnt_ctx->root_ses, cifs_sb->local_nls, + return dfs_cache_find(mnt_ctx->xid, ctx->dfs_root_ses, cifs_sb->local_nls, cifs_remap(cifs_sb), path, ref, tl); } |