Whamcloud - gitweb
LU-4386 osc: don't activate deactivated obd_import 47/8747/4
authorHongchao Zhang <hongchao.zhang@intel.com>
Thu, 5 Sep 2013 13:50:48 +0000 (21:50 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 18 Feb 2014 05:55:04 +0000 (05:55 +0000)
In ptlrpc_activate_import(), obd_import->imp_deactive should
be checked if it is deactivated, otherwise it will trigger an
LBUG in ptlrpc_invalidate_import():

  ptlrpc_invalidate_import() ASSERTION(imp->imp_invalid) failed

Change-Id: I4c16f166c0c2cf60664119bf438dfd8606d71a2f
Signed-off-by: Hongchao Zhang <hongchao.zhang@intel.com>
Reviewed-on: http://review.whamcloud.com/8747
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Jenkins
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/ptlrpc/import.c

index 1076b96..3ba64d7 100644 (file)
@@ -387,6 +387,11 @@ void ptlrpc_activate_import(struct obd_import *imp)
        struct obd_device *obd = imp->imp_obd;
 
        spin_lock(&imp->imp_lock);
+       if (imp->imp_deactive != 0) {
+               spin_unlock(&imp->imp_lock);
+               return;
+       }
+
        imp->imp_invalid = 0;
        spin_unlock(&imp->imp_lock);
        obd_import_event(obd, imp, IMP_EVENT_ACTIVE);