dlm: Fix kobject memleak
[ Upstream commit0ffddafc3a
] Currently the error return path from kobject_init_and_add() is not followed by a call to kobject_put() - which means we are leaking the kobject. Set do_unreg = 1 before kobject_init_and_add() to ensure that kobject_put() can be called in its error patch. Fixes:901195ed7f
("Kobject: change GFS2 to use kobject_init_and_add") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Wang Hai <wanghai38@huawei.com> Signed-off-by: David Teigland <teigland@redhat.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
41e8b5afde
commit
ba8a721933
|
@ -632,6 +632,9 @@ static int new_lockspace(const char *name, const char *cluster,
|
||||||
wait_event(ls->ls_recover_lock_wait,
|
wait_event(ls->ls_recover_lock_wait,
|
||||||
test_bit(LSFL_RECOVER_LOCK, &ls->ls_flags));
|
test_bit(LSFL_RECOVER_LOCK, &ls->ls_flags));
|
||||||
|
|
||||||
|
/* let kobject handle freeing of ls if there's an error */
|
||||||
|
do_unreg = 1;
|
||||||
|
|
||||||
ls->ls_kobj.kset = dlm_kset;
|
ls->ls_kobj.kset = dlm_kset;
|
||||||
error = kobject_init_and_add(&ls->ls_kobj, &dlm_ktype, NULL,
|
error = kobject_init_and_add(&ls->ls_kobj, &dlm_ktype, NULL,
|
||||||
"%s", ls->ls_name);
|
"%s", ls->ls_name);
|
||||||
|
@ -639,9 +642,6 @@ static int new_lockspace(const char *name, const char *cluster,
|
||||||
goto out_recoverd;
|
goto out_recoverd;
|
||||||
kobject_uevent(&ls->ls_kobj, KOBJ_ADD);
|
kobject_uevent(&ls->ls_kobj, KOBJ_ADD);
|
||||||
|
|
||||||
/* let kobject handle freeing of ls if there's an error */
|
|
||||||
do_unreg = 1;
|
|
||||||
|
|
||||||
/* This uevent triggers dlm_controld in userspace to add us to the
|
/* This uevent triggers dlm_controld in userspace to add us to the
|
||||||
group of nodes that are members of this lockspace (managed by the
|
group of nodes that are members of this lockspace (managed by the
|
||||||
cluster infrastructure.) Once it's done that, it tells us who the
|
cluster infrastructure.) Once it's done that, it tells us who the
|
||||||
|
|
Loading…
Reference in New Issue