From 05e776c2b9d9fd749cab4474e61e832499af51e1 Mon Sep 17 00:00:00 2001
From: shadow <shadow>
Date: Tue, 24 Jun 2008 09:49:57 +0000
Subject: [PATCH] don't skip invalidate for already invalidated import (mgc
 reconnect).

Branch HEAD
b=15716
i=rread
i=tappro
---
 lustre/ptlrpc/client.c |  1 -
 lustre/ptlrpc/import.c | 10 ++--------
 2 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/lustre/ptlrpc/client.c b/lustre/ptlrpc/client.c
index dac84129fe..bc9c2c278e 100644
--- a/lustre/ptlrpc/client.c
+++ b/lustre/ptlrpc/client.c
@@ -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
diff --git a/lustre/ptlrpc/import.c b/lustre/ptlrpc/import.c
index 023139ffa1..869c56a7c5 100644
--- a/lustre/ptlrpc/import.c
+++ b/lustre/ptlrpc/import.c
@@ -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:
-- 
GitLab