summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dlm
diff options
context:
space:
mode:
authorSunil Mushran2007-03-12 21:24:34 +0100
committerMark Fasheh2007-03-14 22:37:33 +0100
commit3fca0894a4b5e52c278421b04435b88e32b423ad (patch)
treea69223852d772625b7957f7650db9b6a907190fa /fs/ocfs2/dlm
parentconfigfs: add missing mutex_unlock() (diff)
downloadkernel-qcow2-linux-3fca0894a4b5e52c278421b04435b88e32b423ad.tar.gz
kernel-qcow2-linux-3fca0894a4b5e52c278421b04435b88e32b423ad.tar.xz
kernel-qcow2-linux-3fca0894a4b5e52c278421b04435b88e32b423ad.zip
ocfs2_dlm: Missing get/put lockres in dlm_run_purge_lockres
In some circumstances, this was causing us to reference freed memory. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/dlm')
-rw-r--r--fs/ocfs2/dlm/dlmthread.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ocfs2/dlm/dlmthread.c b/fs/ocfs2/dlm/dlmthread.c
index 8ffa0916eb86..6421a8fae1de 100644
--- a/fs/ocfs2/dlm/dlmthread.c
+++ b/fs/ocfs2/dlm/dlmthread.c
@@ -265,8 +265,10 @@ static void dlm_run_purge_list(struct dlm_ctxt *dlm,
/* This may drop and reacquire the dlm spinlock if it
* has to do migration. */
mlog(0, "calling dlm_purge_lockres!\n");
+ dlm_lockres_get(lockres);
if (dlm_purge_lockres(dlm, lockres))
BUG();
+ dlm_lockres_put(lockres);
mlog(0, "DONE calling dlm_purge_lockres!\n");
/* Avoid adding any scheduling latencies */