The commit is pushed to "branch-rh7-3.10.0-1127.18.2.vz7.163.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-1127.18.2.vz7.163.41 ------> commit 089cdc112a232fa6cbdf59f2fee40b58563c67f1 Author: Kirill Tkhai <ktk...@virtuozzo.com> Date: Thu Oct 29 17:03:07 2020 +0300
ve: Reorder ve->ve_ns assignment in ve_grab_context() This function must provide guarantees for readers, that "ve_ns != NULL" under rcu_read_lock means the rest of context (say, ve->init_task) is stable. But now order is wrong, and it does not guarantee that. Fix it. Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> --- kernel/ve/ve.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c index 482d658..ff3bf93 100644 --- a/kernel/ve/ve.c +++ b/kernel/ve/ve.c @@ -586,9 +586,10 @@ static void ve_grab_context(struct ve_struct *ve) ve->root_css_set = tsk->cgroups; get_css_set(ve->root_css_set); ve->init_cred = (struct cred *)get_current_cred(); - rcu_assign_pointer(ve->ve_ns, get_nsproxy(tsk->nsproxy)); ve->ve_netns = get_net(ve->ve_ns->net_ns); synchronize_rcu(); + + rcu_assign_pointer(ve->ve_ns, get_nsproxy(tsk->nsproxy)); } static void ve_drop_context(struct ve_struct *ve) _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel