瀏覽代碼

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>
Sunil Mushran 18 年之前
父節點
當前提交
3fca0894a4
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      fs/ocfs2/dlm/dlmthread.c

+ 2 - 0
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 */