[DLM] fix grant_after_purge softlockup
authorDavid Teigland <teigland@redhat.com>
Tue, 2 May 2006 17:34:03 +0000 (13:34 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Tue, 2 May 2006 17:34:03 +0000 (13:34 -0400)
commit97a35d1e5fab9ff8de27814082b78b2fc9ad94f0
tree551025da17641ccc4df7378da2bb94cedfb2482e
parentd2d7b8a2a756fb520792ca3db3abdeed9214ae5b
[DLM] fix grant_after_purge softlockup

In dlm_grant_after_purge() we were holding a hash table read_lock while
calling put_rsb() which potentially removes the rsb from the hash table,
taking the same lock in write.  Fix this by flagging rsb's ahead of time
that have been purged.  Then iteratively read_lock the hash table, find a
flagged rsb, unlock, process rsb.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/dlm/dlm_internal.h
fs/dlm/lock.c
fs/dlm/lock.h