lkml.org 
[lkml]   [2008]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 64/80] Simplify devpts_pty_new()
    Date
    From: Sukadev Bhattiprolu <sukadev@us.ibm.com>

    devpts_pty_new() is called when setting up a new pty and would not
    will not have an existing dentry or inode for the pty. So don't bother
    looking for an existing dentry - just create a new one.

    Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com>
    Signed-off-by: Alan Cox <alan@redhat.com>
    ---

    fs/devpts/inode.c | 11 ++++++++---
    1 files changed, 8 insertions(+), 3 deletions(-)


    diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
    index b292ed7..50e885f 100644
    --- a/fs/devpts/inode.c
    +++ b/fs/devpts/inode.c
    @@ -220,6 +220,7 @@ int devpts_pty_new(struct inode *ptmx_inode, struct tty_struct *tty)
    dev_t device = MKDEV(driver->major, driver->minor_start+number);
    struct dentry *dentry;
    struct inode *inode = new_inode(devpts_mnt->mnt_sb);
    + char s[12];

    /* We're supposed to be given the slave end of a pty */
    BUG_ON(driver->type != TTY_DRIVER_TYPE_PTY);
    @@ -235,9 +236,13 @@ int devpts_pty_new(struct inode *ptmx_inode, struct tty_struct *tty)
    init_special_inode(inode, S_IFCHR|config.mode, device);
    inode->i_private = tty;

    - dentry = get_node(number);
    - if (!IS_ERR(dentry) && !dentry->d_inode) {
    - d_instantiate(dentry, inode);
    + sprintf(s, "%d", number);
    +
    + mutex_lock(&devpts_root->d_inode->i_mutex);
    +
    + dentry = d_alloc_name(devpts_root, s);
    + if (!IS_ERR(dentry)) {
    + d_add(dentry, inode);
    fsnotify_create(devpts_root->d_inode, dentry);
    }



    \
     
     \ /
      Last update: 2008-10-13 12:01    [W:4.127 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site