summaryrefslogtreecommitdiffstats
path: root/fs/cifs/dfs.h
diff options
context:
space:
mode:
authorPaulo Alcantara <pc@manguebit.com>2023-03-14 20:32:53 -0300
committerSteve French <stfrench@microsoft.com>2023-03-14 21:05:53 -0500
commitb56bce502f55505a97e381d546ee881928183126 (patch)
treef26b519515e2423fa65b515c23eeefc46e35f124 /fs/cifs/dfs.h
parent05ce0448c3f36febd8db0ee0e9e16557f3ab5ee8 (diff)
downloadlinux-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.h3
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);
}