Commit b4f60a05 authored by Shyam Prasad N's avatar Shyam Prasad N Committed by Steve French
Browse files

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: default avatarShyam Prasad N <sprasad@microsoft.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent c1846893
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -392,7 +392,8 @@ static int __cifs_reconnect(struct TCP_Server_Info *server,
		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);