Whamcloud - gitweb
b=1424
authorrread <rread>
Tue, 1 Jul 2003 07:35:18 +0000 (07:35 +0000)
committerrread <rread>
Tue, 1 Jul 2003 07:35:18 +0000 (07:35 +0000)
r=shaver,others

- cleanup import level and generation
- fixes several bugs:

b=1420 ost and client both timeout, client never reconnects
b=1440 very small change to call the lov set_active in recovery
b=1448 another small change to send DISCONNECT at a normal level

lustre/ldlm/ldlm_lib.c

index 782ccca..9b53b54 100644 (file)
@@ -152,7 +152,7 @@ int client_import_disconnect(struct lustre_handle *dlm_handle, int failover)
 
         /* Yeah, obd_no_recov also (mainly) means "forced shutdown". */
         if (obd->obd_no_recov) {
-                ptlrpc_abort_inflight(imp);
+                ptlrpc_set_import_active(imp, 0);
         } else {
                 request = ptlrpc_prep_req(imp, rq_opc, 0, NULL, NULL);
                 if (!request)
@@ -160,9 +160,6 @@ int client_import_disconnect(struct lustre_handle *dlm_handle, int failover)
 
                 request->rq_replen = lustre_msg_size(0, NULL);
 
-                /* Process disconnects even if we're waiting for recovery. */
-                request->rq_level = LUSTRE_CONN_RECOVD;
-
                 rc = ptlrpc_queue_wait(request);
                 if (rc)
                         GOTO(out_req, rc);
@@ -472,6 +469,7 @@ void target_abort_recovery(void *data)
         class_disconnect_exports(obd, 0);
         abort_delayed_replies(obd);
         abort_recovery_queue(obd);
+        ptlrpc_run_recovery_over_upcall(obd);
 }
 
 static void target_recovery_expired(unsigned long castmeharder)