[Devel] [PATCH vz10] ve: set proper VE state on ve_create()	error
    Pavel Tikhomirov 
    ptikhomirov at virtuozzo.com
       
    Wed Aug 27 05:53:21 MSK 2025
    
    
  
On 8/25/25 20:41, Konstantin Khorenko wrote:
> If we fail to alloc ve_struct, we'll crash here on setting VE state.
> 
> Fixes: 666e40b308457 ("ve/cgroups: Drop lock when stopping workqueue to
> avoid dead lock")
> Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
> 
> Feature: ve: ve generic structures
> ---
>   kernel/ve/ve.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
> index 146f7922d4856..1d7e04bb7f3fb 100644
> --- a/kernel/ve/ve.c
> +++ b/kernel/ve/ve.c
> @@ -1028,9 +1028,9 @@ static struct cgroup_subsys_state *ve_create(struct cgroup_subsys_state *parent_
>   err_log:
>   	free_percpu(ve->sched_lat_ve.cur);
>   err_lat:
> +	ve_set_state(ve, VE_STATE_DEAD);
>   	kmem_cache_free(ve_cachep, ve);
>   err_ve:
> -	ve_set_state(ve, VE_STATE_STOPPED);
Why do we change s/VE_STATE_STOPPED/VE_STATE_DEAD/ ? As far as I can see 
VE_STATE_DEAD is for destroyed cgroup only. I don't think this change is 
correct.
Other thing, the label "err_ve" after this patch is only doing return, 
codding style dictates that we remove it and return directly instead of 
jumping to this label.
 >  If there is no cleanup needed then just return directly.
https://www.kernel.org/doc/html/v4.10/process/coding-style.html#centralized-exiting-of-functions
>   	return ERR_PTR(err);
>   }
>   
-- 
Best regards, Pavel Tikhomirov
Senior Software Developer, Virtuozzo.
    
    
More information about the Devel
mailing list