Whamcloud - gitweb
LU-14930 mdt: abort_recov_mdt shouldn't abort client recovery
[fs/lustre-release.git] / lustre / ldlm / ldlm_lib.c
index 4f29756..64214e2 100644 (file)
@@ -175,9 +175,10 @@ int client_import_add_nids_to_conn(struct obd_import *imp, lnet_nid_t *nids,
        list_for_each_entry(conn, &imp->imp_conn_list, oic_item) {
                if (class_check_uuid(&conn->oic_uuid, nids[0])) {
                        *uuid = conn->oic_uuid;
+                       spin_unlock(&imp->imp_lock);
                        rc = class_add_nids_to_uuid(&conn->oic_uuid, nids,
                                                    nid_count);
-                       break;
+                       RETURN(rc);
                }
        }
        spin_unlock(&imp->imp_lock);
@@ -1842,6 +1843,7 @@ void target_cleanup_recovery(struct obd_device *obd)
                return;
        }
        obd->obd_recovering = obd->obd_abort_recovery = 0;
+       obd->obd_abort_recov_mdt = 0;
        spin_unlock(&obd->obd_dev_lock);
 
        spin_lock(&obd->obd_recovery_task_lock);
@@ -2791,6 +2793,7 @@ static int target_recovery_thread(void *arg)
         */
        spin_lock(&obd->obd_dev_lock);
        obd->obd_recovering = obd->obd_abort_recovery = 0;
+       obd->obd_abort_recov_mdt = 0;
        spin_unlock(&obd->obd_dev_lock);
        spin_lock(&obd->obd_recovery_task_lock);
        target_cancel_recovery_timer(obd);