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 <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
Shyam Prasad N 2022-01-16 11:19:36 +00:00 коммит произвёл Steve French
Родитель 8a409cda97
Коммит e154cb7b0a
1 изменённых файлов: 3 добавлений и 0 удалений

Просмотреть файл

@ -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)