Whamcloud - gitweb
LU-56 ldlm: SMP improvement for ldlm_lock_cancel
[fs/lustre-release.git] / lustre / ldlm / ldlm_lock.c
index cb4c3cb..bb17c8a 100644 (file)
@@ -1782,14 +1782,17 @@ void ldlm_lock_cancel(struct ldlm_lock *lock)
                 LBUG();
         }
 
-        ldlm_del_waiting_lock(lock);
+       if (lock->l_waited)
+               ldlm_del_waiting_lock(lock);
 
         /* Releases cancel callback. */
         ldlm_cancel_callback(lock);
 
         /* Yes, second time, just in case it was added again while we were
            running with no res lock in ldlm_cancel_callback */
-        ldlm_del_waiting_lock(lock);
+       if (lock->l_waited)
+               ldlm_del_waiting_lock(lock);
+
         ldlm_resource_unlink_lock(lock);
         ldlm_lock_destroy_nolock(lock);