34 lines
1.3 KiB
Diff
34 lines
1.3 KiB
Diff
From 2bffd71a70fa4695f62712688a720393cc92032b Mon Sep 17 00:00:00 2001
|
|
From: Shyam Prasad N <sprasad@microsoft.com>
|
|
Date: Mon, 2 Jun 2025 22:37:16 +0530
|
|
Subject: cifs: dns resolution is needed only for primary channel
|
|
|
|
When calling cifs_reconnect, before the connection to the
|
|
server is reestablished, the code today does a DNS resolution and
|
|
updates server->dstaddr.
|
|
|
|
However, this is not necessary for secondary channels. Secondary
|
|
channels use the interface list returned by the server to decide
|
|
which address to connect to. And that happens after tcon is reconnected
|
|
and server interfaces are requested.
|
|
|
|
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
|
|
Cc: stable@vger.kernel.org
|
|
Signed-off-by: Steve French <stfrench@microsoft.com>
|
|
---
|
|
fs/smb/client/connect.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--- a/fs/smb/client/connect.c
|
|
+++ b/fs/smb/client/connect.c
|
|
@@ -392,7 +392,8 @@ static int __cifs_reconnect(struct TCP_S
|
|
try_to_freeze();
|
|
cifs_server_lock(server);
|
|
|
|
- if (!cifs_swn_set_server_dstaddr(server)) {
|
|
+ if (!cifs_swn_set_server_dstaddr(server) &&
|
|
+ !SERVER_IS_CHAN(server)) {
|
|
/* resolve the hostname again to make sure that IP address is up-to-date */
|
|
rc = reconn_set_ipaddr_from_hostname(server);
|
|
cifs_dbg(FYI, "%s: reconn_set_ipaddr_from_hostname: rc=%d\n", __func__, rc);
|