mirror of https://gitee.com/openkylin/linux.git
[DLM] Fix spin lock already unlocked bug
I just noticed this message when testing some other changes I'd made to lowcomms (to use workqueues) but the problem seems to be in the current git trees too. I'm amazed no-one has seen it. BUG: spinlock already unlocked on CPU#1, dlm_recoverd/16868 Signed-Off-By: Patrick Caulfield <pcaulfie@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
This commit is contained in:
parent
3fb4a251fe
commit
4edde74eed
|
@ -709,6 +709,7 @@ void *dlm_lowcomms_get_buffer(int nodeid, int len,
|
|||
if (!con)
|
||||
return NULL;
|
||||
|
||||
spin_lock(&con->writequeue_lock);
|
||||
e = list_entry(con->writequeue.prev, struct writequeue_entry, list);
|
||||
if ((&e->list == &con->writequeue) ||
|
||||
(PAGE_CACHE_SIZE - e->end < len)) {
|
||||
|
@ -747,6 +748,7 @@ void dlm_lowcomms_commit_buffer(void *mh)
|
|||
struct connection *con = e->con;
|
||||
int users;
|
||||
|
||||
spin_lock(&con->writequeue_lock);
|
||||
users = --e->users;
|
||||
if (users)
|
||||
goto out;
|
||||
|
|
Loading…
Reference in New Issue