/* Call this function to state that the given lock manager is ready to resume regular locking. The grace period will not end until all lock managers that called locks_start_grace() also call locks_end_grace(). Note that callers count on it being safe to call this more than once, and the second call should be a no-op.  */
void locks_end_grace(struct lock_manager *lm)
/* Call this function to state that the given lock manager is ready to resume regular locking. The grace period will not end until all lock managers that called locks_start_grace() also call locks_end_grace(). Note that callers count on it being safe to call this more than once, and the second call should be a no-op.  */
void locks_end_grace(struct lock_manager *lm)
{
	spin_lock(&grace_lock);
	list_del_init(&lm->list);
	spin_unlock(&grace_lock);
}