lkml.org 
[lkml]   [2012]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[RFC PATCH 1/5] net: cleanup unix_bind() a little
    From
    Date
    This will simplify further changes for unix_fbind().
    ---
    net/unix/af_unix.c | 12 +++++-------
    1 files changed, 5 insertions(+), 7 deletions(-)

    diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
    index 641f2e4..bc90ddb 100644
    --- a/net/unix/af_unix.c
    +++ b/net/unix/af_unix.c
    @@ -880,10 +880,8 @@ static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
    if (err)
    goto out_mknod_dput;
    err = security_path_mknod(&path, dentry, mode, 0);
    - if (err)
    - goto out_mknod_drop_write;
    - err = vfs_mknod(path.dentry->d_inode, dentry, mode, 0);
    -out_mknod_drop_write:
    + if (!err)
    + err = vfs_mknod(path.dentry->d_inode, dentry, mode, 0);
    mnt_drop_write(path.mnt);
    if (err)
    goto out_mknod_dput;
    @@ -896,9 +894,9 @@ out_mknod_drop_write:

    spin_lock(&unix_table_lock);

    + err = -EADDRINUSE;
    if (!sun_path[0]) {
    - err = -EADDRINUSE;
    - if (__unix_find_socket_byname(net, sunaddr, addr_len,
    + if (__unix_find_socket_byname(net, sunaddr, addr->len,
    sk->sk_type, hash)) {
    unix_release_addr(addr);
    goto out_unlock;
    @@ -906,7 +904,7 @@ out_mknod_drop_write:

    list = &unix_socket_table[addr->hash];
    } else {
    - list = &unix_socket_table[dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1)];
    + list = &unix_socket_table[path.dentry->d_inode->i_ino & (UNIX_HASH_SIZE-1)];
    u->path = path;
    }



    \
     
     \ /
      Last update: 2012-08-15 23:44    [W:5.063 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site