[DLM] fix add_requestqueue checking nodes list
authorDavid Teigland <teigland@redhat.com>
Mon, 27 Nov 2006 17:31:22 +0000 (11:31 -0600)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 30 Nov 2006 15:37:00 +0000 (10:37 -0500)
commit2896ee37ccc1f9acb244c9b02becb74a43661009
treec7129fd39b33c9c61516419b595f109bff500749
parentdcf3dd852f554bb0016aa23892596717cc123a26
[DLM] fix add_requestqueue checking nodes list

Requests that arrive after recovery has started are saved in the
requestqueue and processed after recovery is done.  Some of these requests
are purged during recovery if they are from nodes that have been removed.
We move the purging of the requests (dlm_purge_requestqueue) to later in
the recovery sequence which allows the routine saving requests
(dlm_add_requestqueue) to avoid filtering out requests by nodeid since the
same will be done by the purge.  The current code has add_requestqueue
filtering by nodeid but doesn't hold any locks when accessing the list of
current nodes.  This also means that we need to call the purge routine
when the lockspace is being shut down since the add routine will not be
rejecting requests itself any more.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/dlm/lockspace.c
fs/dlm/recoverd.c
fs/dlm/requestqueue.c