]>
Commit | Line | Data |
---|---|---|
00e5a55c BS |
1 | From: David Teigland <teigland@redhat.com> |
2 | Date: Mon, 17 Nov 2008 12:28:48 -0600 | |
3 | Subject: ocfs2: fix wake_up in unlock_ast | |
4 | ||
5 | In ocfs2_unlock_ast(), call wake_up() on lockres before releasing | |
6 | the spin lock on it. As soon as the spin lock is released, the | |
7 | lockres can be freed. | |
8 | ||
9 | Signed-off-by: David Teigland <teigland@redhat.com> | |
10 | Signed-off-by: Mark Fasheh <mfasheh@suse.com> | |
11 | --- | |
12 | fs/ocfs2/dlmglue.c | 3 +-- | |
13 | 1 files changed, 1 insertions(+), 2 deletions(-) | |
14 | ||
15 | Index: linux-2.6.27-ocfs2/fs/ocfs2/dlmglue.c | |
16 | =================================================================== | |
17 | --- linux-2.6.27-ocfs2.orig/fs/ocfs2/dlmglue.c | |
18 | +++ linux-2.6.27-ocfs2/fs/ocfs2/dlmglue.c | |
19 | @@ -2841,9 +2841,8 @@ static void ocfs2_unlock_ast(void *opaqu | |
20 | ||
21 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | |
22 | lockres->l_unlock_action = OCFS2_UNLOCK_INVALID; | |
23 | - spin_unlock_irqrestore(&lockres->l_lock, flags); | |
24 | - | |
25 | wake_up(&lockres->l_event); | |
26 | + spin_unlock_irqrestore(&lockres->l_lock, flags); | |
27 | ||
28 | mlog_exit_void(); | |
29 | } |