diff options
author | Paulo Alcantara <pc@cjr.nz> | 2020-07-21 09:36:41 -0300 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2020-08-02 18:00:26 -0500 |
commit | a52930353eaf443489a350a135c5525a4acbbf56 (patch) | |
tree | f91c99d9e72ceaf3f1e4f0b8c8613d570d112bf3 /fs | |
parent | 7d397a034d5c45528c7bdf7fc3752c4793029cce (diff) |
cifs: handle empty list of targets in cifs_reconnect()
In case there were no cached DFS referrals in
reconn_setup_dfs_targets(), set cifs_sb to NULL prior to calling
reconn_set_next_dfs_target() so it would not try to access an empty
tgt_list.
Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/cifs/connect.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 21a4685894fa..78e6460d1e49 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -470,11 +470,13 @@ cifs_reconnect(struct TCP_Server_Info *server) sb = NULL; } else { cifs_sb = CIFS_SB(sb); - rc = reconn_setup_dfs_targets(cifs_sb, &tgt_list); - if (rc && (rc != -EOPNOTSUPP)) { - cifs_server_dbg(VFS, "%s: no target servers for DFS failover\n", - __func__); + if (rc) { + cifs_sb = NULL; + if (rc != -EOPNOTSUPP) { + cifs_server_dbg(VFS, "%s: no target servers for DFS failover\n", + __func__); + } } else { server->nr_targets = dfs_cache_get_nr_tgts(&tgt_list); } |