lkml.org 
[lkml]   [2008]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 5/7]: Implement get_pts_ns() and put_pts_ns()

    From: Sukadev Bhattiprolu <sukadev@us.ibm.com>
    Subject: [RFC][PATCH 5/7]: Implement get_pts_ns() and put_pts_ns()

    Implement get_pts_ns() and put_pts_ns() interfaces.

    Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com>
    ---
    include/linux/devpts_fs.h | 21 ++++++++++++++++++++-
    1 file changed, 20 insertions(+), 1 deletion(-)

    Index: 2.6.25-rc8-mm1/include/linux/devpts_fs.h
    ===================================================================
    --- 2.6.25-rc8-mm1.orig/include/linux/devpts_fs.h 2008-04-08 09:18:23.000000000 -0700
    +++ 2.6.25-rc8-mm1/include/linux/devpts_fs.h 2008-04-08 13:36:31.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);
    +}
    +
    #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



    \
     
     \ /
      Last update: 2008-04-09 00:05    [W:0.023 / U:162.504 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site