From: David Teigland Date: Thu, 10 Aug 2006 18:31:23 +0000 (-0500) Subject: [DLM] move kmap to after spin_unlock X-Git-Tag: v2.6.19-rc1~32^2~100 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcc8abc8d4fcdbddc383091449f3696b411aa8fb;p=linux-2.6 [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: David Teigland Signed-off-by: Steven Whitehouse --- diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c index 7ab40422ab..23f5ce1208 100644 --- a/fs/dlm/lowcomms.c +++ b/fs/dlm/lowcomms.c @@ -934,11 +934,11 @@ static int send_to_sock(struct nodeinfo *ni) break; e = list_entry(ni->writequeue.next, struct writequeue_entry, list); - kmap(e->page); len = e->len; offset = e->offset; BUG_ON(len == 0 && e->users == 0); spin_unlock(&ni->writequeue_lock); + kmap(e->page); ret = 0; if (len) {