Whamcloud - gitweb
LU-1467 ost: ASSERTION(lock->l_req_mode == lock->l_granted_mode)
authoryangsheng <ys@whamcloud.com>
Wed, 6 Jun 2012 08:15:47 +0000 (16:15 +0800)
committerOleg Drokin <green@whamcloud.com>
Fri, 8 Jun 2012 17:36:18 +0000 (13:36 -0400)
The lock may be cancel while ost_prolong_lock_one invoked, so
just return in this case.

Signed-off-by: yang sheng <ys@whamcloud.com>
Change-Id: Ica6ad9199e4b210145e99d2420925803b18a7edd
Reviewed-on: http://review.whamcloud.com/3042
Tested-by: Hudson
Reviewed-by: Jinshan Xiong <jinshan.xiong@whamcloud.com>
Reviewed-by: Niu Yawei <niu@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/ost/ost_handler.c

index 520d1af..314af35 100644 (file)
@@ -1694,8 +1694,10 @@ static inline int prolong_timeout(struct ptlrpc_request *req)
 static void ost_prolong_lock_one(struct ost_prolong_data *opd,
                                  struct ldlm_lock *lock)
 {
-        LASSERT(lock->l_req_mode == lock->l_granted_mode);
-        LASSERT(lock->l_export == opd->opd_exp);
+       LASSERT(lock->l_export == opd->opd_exp);
+
+       if (lock->l_destroyed) /* lock already cancelled */
+               return;
 
         /* XXX: never try to grab resource lock here because we're inside
          * exp_bl_list_lock; in ldlm_lockd.c to handle waiting list we take