Whamcloud - gitweb
don't skip invalidate for already invalidated import (mgc reconnect).
authorshadow <shadow>
Tue, 24 Jun 2008 09:49:57 +0000 (09:49 +0000)
committershadow <shadow>
Tue, 24 Jun 2008 09:49:57 +0000 (09:49 +0000)
Branch HEAD
b=15716
i=rread
i=tappro

lustre/ptlrpc/client.c
lustre/ptlrpc/import.c

index dac8412..bc9c2c2 100644 (file)
@@ -667,7 +667,6 @@ static int ptlrpc_import_delay_req(struct obd_import *imp,
                         DEBUG_REQ(D_ERROR, req, "invalidate in flight");
                         *status = -EIO;
                 }
-
         } else if ((imp->imp_invalid && (!imp->imp_recon_bk)) ||
                                          imp->imp_obd->obd_no_recov) {
                 /* If the import has been invalidated (such as by an OST
index 023139f..869c56a 100644 (file)
@@ -170,12 +170,6 @@ static void ptlrpc_deactivate_and_unlock_import(struct obd_import *imp)
         ENTRY;
         LASSERT_SPIN_LOCKED(&imp->imp_lock);
 
-        if (imp->imp_invalid) {
-                spin_unlock(&imp->imp_lock);
-                EXIT;
-                return;
-        }
-
         CDEBUG(D_HA, "setting import %s INVALID\n", obd2cli_tgt(imp->imp_obd));
         imp->imp_invalid = 1;
         imp->imp_generation++;
@@ -223,7 +217,7 @@ void ptlrpc_invalidate_import(struct obd_import *imp)
         LASSERT(imp->imp_invalid);
 
         /* wait for all requests to error out and call completion callbacks */
-        lwi = LWI_TIMEOUT_INTERVAL(cfs_timeout_cap(cfs_time_seconds(obd_timeout)), 
+        lwi = LWI_TIMEOUT_INTERVAL(cfs_timeout_cap(cfs_time_seconds(obd_timeout)),
                                    HZ, NULL, NULL);
         rc = l_wait_event(imp->imp_recovery_waitq,
                           (atomic_read(&imp->imp_inflight) == 0), &lwi);
@@ -245,7 +239,7 @@ void ptlrpc_invalidate_import(struct obd_import *imp)
                         DEBUG_REQ(D_ERROR, req, "still on delayed list");
                 }
                 spin_unlock(&imp->imp_lock);
-//                LASSERT(atomic_read(&imp->imp_inflight) == 0);
+                LASSERT(atomic_read(&imp->imp_inflight) == 0);
         }
 
 out: