OSDN Git Service

cifs: use DFS root session instead of tcon ses
authorPaulo Alcantara <pc@manguebit.com>
Tue, 14 Mar 2023 23:32:56 +0000 (20:32 -0300)
committerSteve French <stfrench@microsoft.com>
Wed, 15 Mar 2023 03:48:53 +0000 (22:48 -0500)
Use DFS root session whenever possible to get new DFS referrals
otherwise we might end up with an IPC tcon (tcon->ses->tcon_ipc) that
doesn't respond to them.  It should be safe accessing
@ses->dfs_root_ses directly in cifs_inval_name_dfs_link_error() as it
has same lifetime as of @tcon.

Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Cc: stable@vger.kernel.org # 6.2
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/misc.c

index 6f9c786..b44fb51 100644 (file)
@@ -1262,6 +1262,7 @@ int cifs_inval_name_dfs_link_error(const unsigned int xid,
                 * removing cached DFS targets that the client would eventually
                 * need during failover.
                 */
+               ses = CIFS_DFS_ROOT_SES(ses);
                if (ses->server->ops->get_dfs_refer &&
                    !ses->server->ops->get_dfs_refer(xid, ses, ref_path, &refs,
                                                     &num_refs, cifs_sb->local_nls,