[Devel] Re: [PATCH 4/7] Implement get_pts_ns() and put_pts_ns()
Serge E. Hallyn
serue at us.ibm.com
Tue Mar 25 08:06:07 PDT 2008
Quoting sukadev at us.ibm.com (sukadev at us.ibm.com):
>
> From: Sukadev Bhattiprolu <sukadev at us.ibm.com>
> Subject: [PATCH 4/7]: Implement get_pts_ns() and put_pts_ns()
>
> Implement get_pts_ns() and put_pts_ns() interfaces.
>
> Signed-off-by: Sukadev Bhattiprolu <sukadev at us.ibm.com>
> ---
> include/linux/devpts_fs.h | 21 ++++++++++++++++++++-
> 1 file changed, 20 insertions(+), 1 deletion(-)
>
> Index: 2.6.25-rc5-mm1/include/linux/devpts_fs.h
> ===================================================================
> --- 2.6.25-rc5-mm1.orig/include/linux/devpts_fs.h 2008-03-24 20:04:31.000000000 -0700
> +++ 2.6.25-rc5-mm1/include/linux/devpts_fs.h 2008-03-24 20:05:05.000000000 -0700
> @@ -27,13 +27,26 @@ struct pts_namespace {
> extern struct pts_namespace init_pts_ns;
>
> #ifdef CONFIG_UNIX98_PTYS
> -
> int devpts_new_index(void);
> void devpts_kill_index(int idx);
> int devpts_pty_new(struct tty_struct *tty); /* mknod in devpts */
> struct tty_struct *devpts_get_tty(int number); /* get tty structure */
> void devpts_pty_kill(int number); /* unlink */
>
> +static inline void free_pts_ns(struct kref *ns_kref) { }
> +
> +static inline struct pts_namespace *get_pts_ns(struct pts_namespace *ns)
> +{
> + if (ns && (ns != &init_pts_ns))
How come you need to this extra check? No other namespaces special-case
the initial ns this way, do they?
> + kref_get(&ns->kref);
> + return ns;
> +}
> +static inline void put_pts_ns(struct pts_namespace *ns)
> +{
> + if (ns && (ns != &init_pts_ns))
> + kref_put(&ns->kref, free_pts_ns);
> +}
> +
> #else
>
> /* Dummy stubs in the no-pty case */
> @@ -43,6 +56,12 @@ static inline int devpts_pty_new(struct
> static inline struct tty_struct *devpts_get_tty(int number) { return NULL; }
> static inline void devpts_pty_kill(int number) { }
>
> +static inline struct pts_namespace *get_pts_ns(struct pts_namespace *ns)
> +{
> + return &init_pts_ns;
> +}
> +
> +static inline void put_pts_ns(struct pts_namespace *ns) { }
> #endif
>
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list