On 2013/6/5 16:53, Xue jiufei wrote:
> dlm_mig_lockres_handler goes to leave, when lockres with state
> DLM_LOCK_RES_RECOVERING, not putting lockres taken in dlm_lookup_lockres.
   it is obvious bug. it cause memory leak.
   Reviewed-by: shencanquan <[email protected]>
> Signed-off-by: joyce<[email protected]>
> ---
>   fs/ocfs2/dlm/dlmrecovery.c |    1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c
> index a145cf8..241ced4 100644
> --- a/fs/ocfs2/dlm/dlmrecovery.c
> +++ b/fs/ocfs2/dlm/dlmrecovery.c
> @@ -1408,6 +1408,7 @@ int dlm_mig_lockres_handler(struct o2net_msg *msg, u32 
> len, void *data,
>                                    mres->lockname_len, mres->lockname);
>                               ret = -EFAULT;
>                               spin_unlock(&res->spinlock);
> +                             dlm_lockres_put(res);
>                               goto leave;
>                       }
>                       res->state |= DLM_LOCK_RES_MIGRATING;




_______________________________________________
Ocfs2-devel mailing list
[email protected]
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

Reply via email to