[Devel] [PATCH vz10 v3 1/2] ve: introduce task_pid_ve_nr

Konstantin Khorenko khorenko at virtuozzo.com
Mon Dec 1 20:51:09 MSK 2025


Please, rework this patch taking into account Pasha's work on VE namespace.

8a771a3d6beae ve: Introduce VE namespace

On 11/25/25 17:40, Aleksei Oladko wrote:
> The new helper returns pid in root pidns of VE
> 
> v3: used tsk instead of current
> 
> Signed-off-by: Aleksei Oladko <aleksey.oladko at virtuozzo.com>
> ---
>   include/linux/ve.h | 17 +++++++++++++++++
>   1 file changed, 17 insertions(+)
> 
> diff --git a/include/linux/ve.h b/include/linux/ve.h
> index 37562dff25aa..c040a1e3f4de 100644
> --- a/include/linux/ve.h
> +++ b/include/linux/ve.h
> @@ -21,6 +21,7 @@
>   #include <asm/vdso.h>
>   #include <linux/time_namespace.h>
>   #include <linux/binfmts.h>
> +#include <linux/pid.h>
>   
>   struct nsproxy;
>   struct user_namespace;
> @@ -191,6 +192,22 @@ static inline struct ve_struct *css_to_ve(struct cgroup_subsys_state *css)
>   
>   extern struct cgroup_subsys_state *ve_get_init_css(struct ve_struct *ve, int subsys_id);
>   
> +static inline pid_t task_pid_ve_nr(struct task_struct *tsk)
> +{
> +	struct nsproxy *ve_ns;
> +	pid_t pid;
> +
> +	rcu_read_lock();
> +	ve_ns = rcu_dereference(tsk->task_ve->ve_ns);
> +	if (ve_ns)
> +		pid = task_pid_nr_ns(tsk, ve_ns->pid_ns_for_children);
> +	else
> +		pid = task_pid_nr(tsk);
> +	rcu_read_unlock();
> +
> +	return pid;
> +}
> +
>   static inline struct time_namespace *ve_get_time_ns(struct ve_struct *ve)
>   {
>   	struct nsproxy *ve_ns;



More information about the Devel mailing list