diff mbox series

[v1,1/7] pid: Introduce helper task_is_in_root_ns()

Message ID 20211205145105.57824-2-leo.yan@linaro.org (mailing list archive)
State New, archived
Headers show
Series pid: Introduce helper task_is_in_root_ns() | expand

Commit Message

Leo Yan Dec. 5, 2021, 2:50 p.m. UTC
Currently the kernel uses open code in multiple places to check if a
task is in the root PID namespace with the kind of format:

  if (task_active_pid_ns(current) == &init_pid_ns)
      do_something();

This patch creates a new helper function, task_is_in_root_ns(), it
returns true if a passed task is in the root PID namespace, otherwise
returns false.  So it will be used to replace open codes.

Suggested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
---
 include/linux/pid_namespace.h | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Leon Romanovsky Dec. 6, 2021, 6:49 a.m. UTC | #1
On Sun, Dec 05, 2021 at 10:50:59PM +0800, Leo Yan wrote:
> Currently the kernel uses open code in multiple places to check if a
> task is in the root PID namespace with the kind of format:
> 
>   if (task_active_pid_ns(current) == &init_pid_ns)
>       do_something();
> 
> This patch creates a new helper function, task_is_in_root_ns(), it
> returns true if a passed task is in the root PID namespace, otherwise
> returns false.  So it will be used to replace open codes.
> 
> Suggested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
> Signed-off-by: Leo Yan <leo.yan@linaro.org>
> ---
>  include/linux/pid_namespace.h | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
> index 7c7e627503d2..bf82b373f022 100644
> --- a/include/linux/pid_namespace.h
> +++ b/include/linux/pid_namespace.h
> @@ -86,4 +86,9 @@ extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk);
>  void pidhash_init(void);
>  void pid_idr_init(void);
>  
> +static inline bool task_is_in_root_ns(struct task_struct *tsk)

It is bad that this name doesn't reflect PID nature of this namespace.
Won't it better to name it task_is_in_init_pid_ns()?

Thanks

> +{
> +	return task_active_pid_ns(tsk) == &init_pid_ns;
> +}
> +
>  #endif /* _LINUX_PID_NS_H */
> -- 
> 2.25.1
>
Leo Yan Dec. 6, 2021, 7:03 a.m. UTC | #2
Hi Leon,

On Mon, Dec 06, 2021 at 08:49:01AM +0200, Leon Romanovsky wrote:
> On Sun, Dec 05, 2021 at 10:50:59PM +0800, Leo Yan wrote:

[...]

> > +static inline bool task_is_in_root_ns(struct task_struct *tsk)
> 
> It is bad that this name doesn't reflect PID nature of this namespace.
> Won't it better to name it task_is_in_init_pid_ns()?

Yes, task_is_in_init_pid_ns() is more clear.

Will respin for this.  Thank you for suggestion!

Leo
Leon Romanovsky Dec. 6, 2021, 7:13 a.m. UTC | #3
On Mon, Dec 06, 2021 at 03:03:58PM +0800, Leo Yan wrote:
> Hi Leon,
> 
> On Mon, Dec 06, 2021 at 08:49:01AM +0200, Leon Romanovsky wrote:
> > On Sun, Dec 05, 2021 at 10:50:59PM +0800, Leo Yan wrote:
> 
> [...]
> 
> > > +static inline bool task_is_in_root_ns(struct task_struct *tsk)
> > 
> > It is bad that this name doesn't reflect PID nature of this namespace.
> > Won't it better to name it task_is_in_init_pid_ns()?
> 
> Yes, task_is_in_init_pid_ns() is more clear.
> 
> Will respin for this.  Thank you for suggestion!

Thanks

> 
> Leo
diff mbox series

Patch

diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
index 7c7e627503d2..bf82b373f022 100644
--- a/include/linux/pid_namespace.h
+++ b/include/linux/pid_namespace.h
@@ -86,4 +86,9 @@  extern struct pid_namespace *task_active_pid_ns(struct task_struct *tsk);
 void pidhash_init(void);
 void pid_idr_init(void);
 
+static inline bool task_is_in_root_ns(struct task_struct *tsk)
+{
+	return task_active_pid_ns(tsk) == &init_pid_ns;
+}
+
 #endif /* _LINUX_PID_NS_H */