> @@ -130,6 +131,34 @@ struct ve_struct {
> #endif
> };
>
> +static inline struct ve_struct *get_exec_env(void)
> +{
> + struct ve_struct *ve;
> +
> + if (++current->ve_attach_lock_depth > 1)
> + return current->task_ve;
> +
> + rcu_read_lock();
> +again:
> + ve = current->task_ve;
> + read_lock(&ve->attach_lock);
> + if (unlikely(current->task_ve != ve)) {
> + read_unlock(&ve->attach_lock);
> + goto again;
Please, no. 3.10 kernel has task_work-s, ask the task you want to
attach to ve to execute the work by moving itself into it and keep
this small routine small and simple.
> + }
> + rcu_read_unlock();
> +
> + return ve;
> +}
> +
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel