]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
smb: client: fix cifs_pick_channel when channel needs reconnect
authorHenrique Carvalho <henrique.carvalho@suse.com>
Fri, 7 Nov 2025 21:59:53 +0000 (18:59 -0300)
committerSteve French <stfrench@microsoft.com>
Sun, 9 Nov 2025 23:30:17 +0000 (17:30 -0600)
cifs_pick_channel iterates candidate channels using cur. The
reconnect-state test mistakenly used a different variable.

This checked the wrong slot and would cause us to skip a healthy channel
and to dispatch on one that needs reconnect, occasionally failing
operations when a channel was down.

Fix by replacing for the correct variable.

Fixes: fc43a8ac396d ("cifs: cifs_pick_channel should try selecting active channels")
Cc: stable@vger.kernel.org
Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Henrique Carvalho <henrique.carvalho@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/transport.c

index 051cd9dbba13d83e876f406c099fddd948f4b801..915cedde5d66452dd695d561e89f8aaa6ef6ad3d 100644 (file)
@@ -830,7 +830,7 @@ struct TCP_Server_Info *cifs_pick_channel(struct cifs_ses *ses)
                if (!server || server->terminate)
                        continue;
 
-               if (CIFS_CHAN_NEEDS_RECONNECT(ses, i))
+               if (CIFS_CHAN_NEEDS_RECONNECT(ses, cur))
                        continue;
 
                /*