smb: client: fix cifs_pick_channel when channel needs reconnect

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: fc43a8ac39 ("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>
This commit is contained in:
Henrique Carvalho
2025-11-07 18:59:53 -03:00
committed by Steve French
parent e9a6fb0bcd
commit 79280191c2

View File

@@ -830,7 +830,7 @@ struct TCP_Server_Info *cifs_pick_channel(struct cifs_ses *ses)
if (!server || server->terminate) if (!server || server->terminate)
continue; continue;
if (CIFS_CHAN_NEEDS_RECONNECT(ses, i)) if (CIFS_CHAN_NEEDS_RECONNECT(ses, cur))
continue; continue;
/* /*