Whamcloud - gitweb
LU-12378 ptlrpc: always reset generation for idle reconnect
[fs/lustre-release.git] / lustre / ptlrpc / import.c
index d070e75..96ab1d9 100644 (file)
@@ -1000,8 +1000,8 @@ static void ptlrpc_prepare_replay(struct obd_import *imp)
  * full state for normal operations of disconnect it due to an error.
  */
 static int ptlrpc_connect_interpret(const struct lu_env *env,
-                                    struct ptlrpc_request *request,
-                                    void *data, int rc)
+                                   struct ptlrpc_request *request,
+                                   void *data, int rc)
 {
        struct ptlrpc_connect_async_args *aa = data;
        struct obd_import *imp = request->rq_import;
@@ -1748,7 +1748,8 @@ static void ptlrpc_reset_reqs_generation(struct obd_import *imp)
                        rq_list) {
                spin_lock(&old->rq_lock);
                if (old->rq_import_generation == imp->imp_generation - 1 &&
-                   !old->rq_no_resend)
+                   ((imp->imp_initiated_at == imp->imp_generation) ||
+                    !old->rq_no_resend))
                        old->rq_import_generation = imp->imp_generation;
                spin_unlock(&old->rq_lock);
        }