From: Shyam Prasad N Date: Mon, 2 Jun 2025 17:07:14 +0000 (+0530) Subject: cifs: update dstaddr whenever channel iface is updated X-Git-Tag: v6.16-rc1~55^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1846893991f3b4ec8a0cc12219ada153f0814d6;p=thirdparty%2Fkernel%2Fstable.git cifs: update dstaddr whenever channel iface is updated When the server interface info changes (more common in clustered servers like Azure Files), the per-channel iface gets updated. However, this did not update the corresponding dstaddr. As a result these channels will still connect (or try connecting) to older addresses. Fixes: b54034a73baf ("cifs: during reconnect, update interface if necessary") Cc: Signed-off-by: Shyam Prasad N Signed-off-by: Steve French --- diff --git a/fs/smb/client/sess.c b/fs/smb/client/sess.c index 79b4bd45e31a6..ec0db32c7d986 100644 --- a/fs/smb/client/sess.c +++ b/fs/smb/client/sess.c @@ -445,6 +445,10 @@ cifs_chan_update_iface(struct cifs_ses *ses, struct TCP_Server_Info *server) ses->chans[chan_index].iface = iface; spin_unlock(&ses->chan_lock); + + spin_lock(&server->srv_lock); + memcpy(&server->dstaddr, &iface->sockaddr, sizeof(server->dstaddr)); + spin_unlock(&server->srv_lock); } static int