xref: /linux/rust/helpers/pid_namespace.c (revision 60675d4ca1ef0857e44eba5849b74a3a998d0c0f)
1*e0020ba6SChristian Brauner // SPDX-License-Identifier: GPL-2.0
2*e0020ba6SChristian Brauner 
3*e0020ba6SChristian Brauner #include <linux/pid_namespace.h>
4*e0020ba6SChristian Brauner #include <linux/cleanup.h>
5*e0020ba6SChristian Brauner 
6*e0020ba6SChristian Brauner struct pid_namespace *rust_helper_get_pid_ns(struct pid_namespace *ns)
7*e0020ba6SChristian Brauner {
8*e0020ba6SChristian Brauner 	return get_pid_ns(ns);
9*e0020ba6SChristian Brauner }
10*e0020ba6SChristian Brauner 
11*e0020ba6SChristian Brauner void rust_helper_put_pid_ns(struct pid_namespace *ns)
12*e0020ba6SChristian Brauner {
13*e0020ba6SChristian Brauner 	put_pid_ns(ns);
14*e0020ba6SChristian Brauner }
15*e0020ba6SChristian Brauner 
16*e0020ba6SChristian Brauner /* Get a reference on a task's pid namespace. */
17*e0020ba6SChristian Brauner struct pid_namespace *rust_helper_task_get_pid_ns(struct task_struct *task)
18*e0020ba6SChristian Brauner {
19*e0020ba6SChristian Brauner 	struct pid_namespace *pid_ns;
20*e0020ba6SChristian Brauner 
21*e0020ba6SChristian Brauner 	guard(rcu)();
22*e0020ba6SChristian Brauner 	pid_ns = task_active_pid_ns(task);
23*e0020ba6SChristian Brauner 	if (pid_ns)
24*e0020ba6SChristian Brauner 		get_pid_ns(pid_ns);
25*e0020ba6SChristian Brauner 	return pid_ns;
26*e0020ba6SChristian Brauner }
27