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