From: yangsheng Date: Wed, 6 Jun 2012 08:15:47 +0000 (+0800) Subject: LU-1467 ost: ASSERTION(lock->l_req_mode == lock->l_granted_mode) X-Git-Tag: 2.2.55~19 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=0d66070d171ec75cc75f84f9217f11917d920739;p=fs%2Flustre-release.git LU-1467 ost: ASSERTION(lock->l_req_mode == lock->l_granted_mode) The lock may be cancel while ost_prolong_lock_one invoked, so just return in this case. Signed-off-by: yang sheng Change-Id: Ica6ad9199e4b210145e99d2420925803b18a7edd Reviewed-on: http://review.whamcloud.com/3042 Tested-by: Hudson Reviewed-by: Jinshan Xiong Reviewed-by: Niu Yawei Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/ost/ost_handler.c b/lustre/ost/ost_handler.c index 520d1af..314af35 100644 --- a/lustre/ost/ost_handler.c +++ b/lustre/ost/ost_handler.c @@ -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