staging/lustre/osc: don't activate deactivated obd_import
authorHongchao Zhang <hongchao.zhang@intel.com>
Sun, 27 Apr 2014 17:06:29 +0000 (13:06 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 27 Apr 2014 17:21:38 +0000 (10:21 -0700)
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

Signed-off-by: Hongchao Zhang <hongchao.zhang@intel.com>
Reviewed-on: http://review.whamcloud.com/8747
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4386
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/ptlrpc/import.c

index 537aa62..a04a1cc 100644 (file)
@@ -381,6 +381,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);