[DLM] add new lockspace to list ealier

When a new lockspace was being created, the recoverd thread was being
started for it before the lockspace was added to the global list of
lockspaces.  The new thread was looking up the lockspace in the global
list and sometimes not finding it due to the race with the original thread
adding it to the list.  We need to add the lockspace to the global list
before starting the thread instead of after, and if the new thread can't
find the lockspace for some reason, it should return an error.

Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
David Teigland
2006-08-24 14:47:20 -05:00
کامیت شده توسط Steven Whitehouse
والد 5dc39fe621
کامیت 5f88f1ea16
2فایلهای تغییر یافته به همراه11 افزوده شده و 6 حذف شده

مشاهده پرونده

@@ -234,6 +234,10 @@ static int dlm_recoverd(void *arg)
struct dlm_ls *ls;
ls = dlm_find_lockspace_local(arg);
if (!ls) {
log_print("dlm_recoverd: no lockspace %p", arg);
return -1;
}
while (!kthread_should_stop()) {
set_current_state(TASK_INTERRUPTIBLE);