From: Shyam Prasad N Date: Sun, 16 Jan 2022 11:19:36 +0000 (+0000) Subject: cifs: fix the cifs_reconnect path for DFS X-Git-Tag: v6.6.17~8327^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e154cb7b0ab961f9d785ed34c2d7128413e7083d;p=platform%2Fkernel%2Flinux-rpi.git cifs: fix the cifs_reconnect path for DFS Recently, the cifs_reconnect code was refactored into two branches for regular vs dfs codepath. Some of my recent changes were missing in the dfs path, namely the code to enable periodic DNS query, and a missing lock. Signed-off-by: Shyam Prasad N Signed-off-by: Steve French --- diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index d643f9e..4a31a9b 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -338,8 +338,10 @@ static int __cifs_reconnect(struct TCP_Server_Info *server, } } while (server->tcpStatus == CifsNeedReconnect); + spin_lock(&cifs_tcp_ses_lock); if (server->tcpStatus == CifsNeedNegotiate) mod_delayed_work(cifsiod_wq, &server->echo, 0); + spin_unlock(&cifs_tcp_ses_lock); wake_up(&server->response_q); return rc; @@ -454,6 +456,7 @@ reconnect_dfs_server(struct TCP_Server_Info *server, spin_unlock(&cifs_tcp_ses_lock); cifs_swn_reset_server_dstaddr(server); mutex_unlock(&server->srv_mutex); + mod_delayed_work(cifsiod_wq, &server->reconnect, 0); } while (server->tcpStatus == CifsNeedReconnect); if (target_hint)