cifs: set up next DFS target before generic_ip_connect()
[linux-2.6-microblaze.git] / fs / cifs / connect.c
index 62503fb..aa1173f 100644 (file)
@@ -572,26 +572,26 @@ cifs_reconnect(struct TCP_Server_Info *server)
                try_to_freeze();
 
                mutex_lock(&server->srv_mutex);
+#ifdef CONFIG_CIFS_DFS_UPCALL
                /*
                 * Set up next DFS target server (if any) for reconnect. If DFS
                 * feature is disabled, then we will retry last server we
                 * connected to before.
                 */
+               reconn_inval_dfs_target(server, cifs_sb, &tgt_list, &tgt_it);
+#endif
+               rc = reconn_set_ipaddr(server);
+               if (rc) {
+                       cifs_dbg(FYI, "%s: failed to resolve hostname: %d\n",
+                                __func__, rc);
+               }
+
                if (cifs_rdma_enabled(server))
                        rc = smbd_reconnect(server);
                else
                        rc = generic_ip_connect(server);
                if (rc) {
                        cifs_dbg(FYI, "reconnect error %d\n", rc);
-#ifdef CONFIG_CIFS_DFS_UPCALL
-                       reconn_inval_dfs_target(server, cifs_sb, &tgt_list,
-                                               &tgt_it);
-#endif
-                       rc = reconn_set_ipaddr(server);
-                       if (rc) {
-                               cifs_dbg(FYI, "%s: failed to resolve hostname: %d\n",
-                                        __func__, rc);
-                       }
                        mutex_unlock(&server->srv_mutex);
                        msleep(3000);
                } else {