We found a possible memory leak in dlm_process_recovery_data when doing code review. In dlm_process_recovery_data, it creates newlock each time, but don't free when it is bad, and then it will lead to memory leak.
Cc: sta...@vger.kernel.org Signed-off-by: Joseph Qi <joseph...@huawei.com> Reviewed-by: Jie Liu <jeff....@oracle.com> --- fs/ocfs2/dlm/dlmrecovery.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index eeac97b..9f08523 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c @@ -1974,6 +1974,10 @@ skip_lvb: res->lockname.len, res->lockname.name, ml->node); dlm_lockres_set_refmap_bit(dlm, res, ml->node); added++; + } else { + /* Free the new lock if it is bad */ + dlm_lock_put(newlock); + newlock = NULL; } spin_unlock(&res->spinlock); } -- 1.7.9.7
_______________________________________________ Ocfs2-devel mailing list Ocfs2-devel@oss.oracle.com https://oss.oracle.com/mailman/listinfo/ocfs2-devel