FAILED: patch "[PATCH] cifs: update cifs_ses::ip_addr after failover" failed to apply to 5.18-stable tree
[email protected]
maintainerThe patch below does not apply to the 5.18-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From af3a6d1018f02c6dc8388f1f3785a559c7ab5961 Mon Sep 17 00:00:00 2001
From: Paulo Alcantara <[email protected]>
Date: Fri, 24 Jun 2022 15:01:43 -0300
Subject: [PATCH] cifs: update cifs_ses::ip_addr after failover
cifs_ses::ip_addr wasn't being updated in cifs_session_setup() when reconnecting SMB sessions thus returning wrong value in /proc/fs/cifs/DebugData.
Signed-off-by Paulo Alcantara (SUSE) <[email protected]>
Signed-off-by Steve French <[email protected]>
fs/cifs/connect.c +7 -1
@@ -4025,10 +4025,16 @@ cifs_setup_session(const unsigned int xid, struct cifs_ses *ses, struct nls_table *nls_info) {int rc = -ENOSYS ; +struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&server->dstaddr; +struct sockaddr_in *addr = (struct sockaddr_in *)&server->dstaddr;bool is_binding = false; -spin_lock (&cifs_tcp_ses_lock); +if (server->dstaddr.ss_family ==AF_INET6 ) +scnprintf (ses->ip_addr,sizeof (ses->ip_addr),"%pI6" , &addr6->sin6_addr); +else +scnprintf (ses->ip_addr,sizeof (ses->ip_addr),"%pI4" , &addr->sin_addr); +if (ses->ses_status !=SES_GOOD && ses->ses_status !=SES_NEW && ses->ses_status !=SES_NEED_RECON ) {