[Devel] [PATCH VZ10 06/12] ve: Switch from current->task_ve to get_exec_env()
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Mon Nov 24 14:20:44 MSK 2025
Let's use get_exec_env() everywhere instead of having part of places
using it and part of places using current->task_ve.
Note: In ve_start_container we technically have tsk->task_ve, but tsk is
always equal to current, so let's simplify it.
https://virtuozzo.atlassian.net/browse/VSTOR-118289
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
Feature: ve: ve generic structures
---
kernel/exit.c | 3 ++-
kernel/ve/ve.c | 6 +++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/kernel/exit.c b/kernel/exit.c
index f5b40a392988e..922c0e3f62363 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -71,6 +71,7 @@
#include <linux/sysfs.h>
#include <linux/user_events.h>
#include <linux/uaccess.h>
+#include <linux/ve.h>
#include <uapi/linux/wait.h>
@@ -557,7 +558,7 @@ static void exit_mm(void)
#ifdef CONFIG_VE
#define K(x) ((x) << (PAGE_SHIFT-10))
- if (!ve_is_super(current->task_ve) &&
+ if (!ve_is_super(get_exec_env()) &&
test_tsk_thread_flag(current, TIF_MEMDIE))
ve_printk(VE_LOG, KERN_ERR "OOM killed process %d (%s) "
"total-vm:%lukB, anon-rss:%lukB, file-rss:%lukB\n",
diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
index 1bde9c27f8683..ba0d64dea7b2e 100644
--- a/kernel/ve/ve.c
+++ b/kernel/ve/ve.c
@@ -707,7 +707,7 @@ static int ve_start_container(struct ve_struct *ve)
if (ve->state != VE_STATE_STARTING || ve_nsproxy)
return -EBUSY;
- if (tsk->task_ve != ve || !is_child_reaper(task_pid(tsk)))
+ if (get_exec_env() != ve || !is_child_reaper(task_pid(tsk)))
return -ECHILD;
/*
@@ -790,7 +790,7 @@ static int ve_start_container(struct ve_struct *ve)
void ve_stop_ns(struct pid_namespace *pid_ns)
{
- struct ve_struct *ve = current->task_ve;
+ struct ve_struct *ve = get_exec_env();
struct nsproxy *ve_nsproxy;
down_write(&ve->op_sem);
@@ -842,7 +842,7 @@ void ve_stop_ns(struct pid_namespace *pid_ns)
void ve_exit_ns(struct pid_namespace *pid_ns)
{
- struct ve_struct *ve = current->task_ve;
+ struct ve_struct *ve = get_exec_env();
struct nsproxy *ve_nsproxy;
/*
--
2.51.1
More information about the Devel
mailing list