[Ocfs2-devel] [PATCH] ocfs2: free the mle while the res had one, to avoid mle memory leak.
Joseph Qi
joseph.qi at huawei.com
Tue Sep 13 18:37:42 PDT 2016
Hi Andrew,
-EEXIST can only happen in case of "I am the master". So
dlm_migrate_request_handler won't get this return value.
I think commit 32e493265b2b ("ocfs2/dlm: do not insert a new mle when
another process is already migrating") has already considered the
case.
So NAK.
Thanks,
Joseph
On 2016/9/14 5:20, Andrew Morton wrote:
> On Tue, 13 Sep 2016 07:52:30 +0000 Guozhonghua <guozhonghua at h3c.com> wrote:
>
>> In the function dlm_migrate_request_handler, while the ret is --EEXIST, the mle should be freed, otherwise the memory will be leaked.
>>
>> Signed-off-by: Guozhonghua <guozhonghua at h3c.com>
>>
>> --- ocfs2.orig/dlm/dlmmaster.c 2016-09-13 15:18:13.602684325 +0800
>> +++ ocfs2/dlm/dlmmaster.c 2016-09-13 15:27:05.014675736 +0800
>> @@ -3188,6 +3188,9 @@ int dlm_migrate_request_handler(struct o
>> migrate->new_master,
>> migrate->master);
>>
>> + if (ret < 0)
>> + kmem_cache_free(dlm_mle_cache, mle);
>> +
>> spin_unlock(&dlm->master_lock);
>> unlock:
>> spin_unlock(&dlm->spinlock);
>
> Looks OK to me.
>
> I wonder if there's another bug here. If dlm_add_migration_mle()
> failed, is it correct to go ahead and detach `oldmle'?
>
>
> _______________________________________________
> Ocfs2-devel mailing list
> Ocfs2-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/ocfs2-devel
>
>
More information about the Ocfs2-devel
mailing list