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>
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