From: Sunil Mushran Date: Mon, 12 Mar 2007 20:24:34 +0000 (-0700) Subject: ocfs2_dlm: Missing get/put lockres in dlm_run_purge_lockres X-Git-Tag: v2.6.21-rc4~6^2~1 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=3fca0894a4b5e52c278421b04435b88e32b423ad;p=linux-2.6-omap-h63xx.git 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 Signed-off-by: Mark Fasheh --- diff --git a/fs/ocfs2/dlm/dlmthread.c b/fs/ocfs2/dlm/dlmthread.c index 8ffa0916eb8..6421a8fae1d 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 */