提交 fcc8abc8 编写于 作者: D David Teigland 提交者: Steven Whitehouse

[DLM] move kmap to after spin_unlock

Doing the kmap() while holding the spinlock was causing recursive spinlock
problems.  It seems the kmap was scheduling, although there was no warning
as I'd expect.  Patrick, do we need locking around the kmap?
Signed-off-by: NDavid Teigland <teigland@redhat.com>
Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
上级 88721877
...@@ -934,11 +934,11 @@ static int send_to_sock(struct nodeinfo *ni) ...@@ -934,11 +934,11 @@ static int send_to_sock(struct nodeinfo *ni)
break; break;
e = list_entry(ni->writequeue.next, struct writequeue_entry, e = list_entry(ni->writequeue.next, struct writequeue_entry,
list); list);
kmap(e->page);
len = e->len; len = e->len;
offset = e->offset; offset = e->offset;
BUG_ON(len == 0 && e->users == 0); BUG_ON(len == 0 && e->users == 0);
spin_unlock(&ni->writequeue_lock); spin_unlock(&ni->writequeue_lock);
kmap(e->page);
ret = 0; ret = 0;
if (len) { if (len) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册