From: Stanislav Kinsburskiy <skinsbur...@virtuozzo.com> These routines will be called from main connecter per-ve init and fini routines.
Signed-off-by: Stanislav Kinsburskiy <skinsbur...@virtuozzo.com> Reviewed-by: Andrey Ryabinin <aryabi...@virtuozzo.com> (cherry picked from vz8 commit 5e3858a525b434080e43d72e5b5a512c472cb6f7) Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com> --- drivers/connector/cn_proc.c | 18 ++++++++++++++++++ include/linux/connector.h | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/drivers/connector/cn_proc.c b/drivers/connector/cn_proc.c index d389259447d0..c2f9d31305c1 100644 --- a/drivers/connector/cn_proc.c +++ b/drivers/connector/cn_proc.c @@ -16,6 +16,7 @@ #include <linux/ptrace.h> #include <linux/atomic.h> #include <linux/pid_namespace.h> +#include <linux/ve.h> #include <linux/cn_proc.h> #include <linux/local_lock.h> @@ -352,6 +353,23 @@ static void cn_proc_mcast_ctl(struct cn_msg *msg, cn_proc_ack(err, msg->seq, msg->ack); } +int cn_proc_init_ve(struct ve_struct *ve) +{ + int err = cn_add_callback_ve(ve, &cn_proc_event_id, + "cn_proc", + &cn_proc_mcast_ctl); + if (err) { + pr_warn("VE#%d: cn_proc failed to register\n", ve->veid); + return err; + } + return 0; +} + +void cn_proc_fini_ve(struct ve_struct *ve) +{ + cn_del_callback_ve(ve, &cn_proc_event_id); +} + /* * cn_proc_init - initialization entry point * diff --git a/include/linux/connector.h b/include/linux/connector.h index acee2c3bfc60..23ba9dd97571 100644 --- a/include/linux/connector.h +++ b/include/linux/connector.h @@ -64,6 +64,10 @@ struct cn_private { }; struct ve_struct; + +int cn_proc_init_ve(struct ve_struct *ve); +void cn_proc_fini_ve(struct ve_struct *ve); + int cn_add_callback_ve(struct ve_struct *ve, const struct cb_id *id, const char *name, void (*callback)(struct cn_msg *, -- 2.31.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel