cifs: update dstaddr whenever channel iface is updated
commit c1846893991f3b4ec8a0cc12219ada153f0814d6 upstream.
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: b54034a73b
("cifs: during reconnect, update interface if necessary")
Cc: <stable@vger.kernel.org>
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
9d80e1d37e
commit
5713127da8
@@ -485,6 +485,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);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user