From: sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org
To: "Serge E. Hallyn" <serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: Containers <containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>,
Matt Helsley <matthltc-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
Pavel Emelianov <xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
Subject: Re: [PATCH 4/7] Implement get_pts_ns() and put_pts_ns()
Date: Tue, 25 Mar 2008 11:44:16 -0700 [thread overview]
Message-ID: <20080325184416.GB4344@us.ibm.com> (raw)
In-Reply-To: <20080325152903.GF9561-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
Serge E. Hallyn [serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org] wrote:
| Quoting sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org (sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org):
| >
| > From: Sukadev Bhattiprolu <sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
| > 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-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
| > ---
| > 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))
| > + 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);
|
| This isn't right, or I'm not thinking right. Don't you somewhere
| need to
|
| 1. rcu_assign ns->mnt->mnt_sb->s_fs_info to NULL
| 2. wait a grace period
| 3. call free_pts_ns and check the refcount on the ns again?
|
| and then do pts_ns_from_inode() under an rcu_read_lock and grab
| a ref to the ns?
Yes, we need the rcu to grab the reference to pts_ns.
next prev parent reply other threads:[~2008-03-25 18:44 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-25 3:59 [PATCH 0/7][v2] Cloning PTS namespace sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080325035904.GB27451-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-03-25 4:22 ` [PATCH 1/7] Propagate error code from devpts_pty_new sukadev-r/Jw6+rmf7HQT0dZR+AlfA
2008-03-25 4:23 ` [PATCH 2/7]: Factor out PTY index allocation sukadev-r/Jw6+rmf7HQT0dZR+AlfA
2008-03-25 4:24 ` [PATCH 3/7]: Enable multiple mounts of /dev/pts sukadev-r/Jw6+rmf7HQT0dZR+AlfA
2008-03-25 4:25 ` [PATCH 4/7] Implement get_pts_ns() and put_pts_ns() sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080325042507.GD27864-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-03-25 15:06 ` Serge E. Hallyn
2008-03-25 15:29 ` Serge E. Hallyn
[not found] ` <20080325152903.GF9561-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-03-25 18:44 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA [this message]
2008-03-25 4:25 ` [PATCH 5/7]: Determine pts_ns from a pty's inode sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080325042541.GE27864-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-03-25 15:17 ` Serge E. Hallyn
[not found] ` <20080325151705.GE9561-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-03-25 21:14 ` Serge E. Hallyn
[not found] ` <20080325211406.GA5817-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-03-26 2:03 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080326020328.GA11747-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-03-26 2:50 ` Serge E. Hallyn
[not found] ` <20080326025038.GA24538-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-03-26 14:55 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080326145521.GA24292-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-03-26 15:12 ` Serge E. Hallyn
[not found] ` <20080326151205.GA16621-6s5zFf/epYL1ENwx4SLHqw@public.gmane.org>
2008-03-26 15:18 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080326151843.GA31568-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-03-26 15:43 ` Serge E. Hallyn
2008-03-25 4:26 ` [PATCH 6/7]: Check for user-space mount of /dev/pts sukadev-r/Jw6+rmf7HQT0dZR+AlfA
[not found] ` <20080325042614.GF27864-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2008-03-25 7:46 ` Pavel Emelyanov
2008-03-25 9:40 ` [Devel] " Alexey Dobriyan
2008-03-25 14:54 ` Serge E. Hallyn
[not found] ` <20080325145448.GC9561-6s5zFf/epYLPQpwDFJZrxKsjOiXwFzmk@public.gmane.org>
2008-03-25 17:25 ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
2008-03-25 4:27 ` [PATCH 7/7]: Enable cloning PTY namespaces sukadev-r/Jw6+rmf7HQT0dZR+AlfA
2008-03-25 7:51 ` [PATCH 0/7][v2] Cloning PTS namespace Pavel Emelyanov
[not found] ` <47E8AEF3.4060406-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org>
2008-03-25 14:42 ` Serge E. Hallyn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080325184416.GB4344@us.ibm.com \
--to=sukadev-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
--cc=containers-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
--cc=matthltc-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
--cc=serue-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
--cc=xemul-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.