diff options
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/socket.c b/net/socket.c index 7f67c072d496..ee3cd280c76e 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -377,7 +377,7 @@ static int sock_alloc_file(struct socket *sock, struct file **f, int flags) | |||
377 | &socket_file_ops); | 377 | &socket_file_ops); |
378 | if (unlikely(!file)) { | 378 | if (unlikely(!file)) { |
379 | /* drop dentry, keep inode */ | 379 | /* drop dentry, keep inode */ |
380 | atomic_inc(&path.dentry->d_inode->i_count); | 380 | ihold(path.dentry->d_inode); |
381 | path_put(&path); | 381 | path_put(&path); |
382 | put_unused_fd(fd); | 382 | put_unused_fd(fd); |
383 | return -ENFILE; | 383 | return -ENFILE; |
@@ -480,6 +480,7 @@ static struct socket *sock_alloc(void) | |||
480 | sock = SOCKET_I(inode); | 480 | sock = SOCKET_I(inode); |
481 | 481 | ||
482 | kmemcheck_annotate_bitfield(sock, type); | 482 | kmemcheck_annotate_bitfield(sock, type); |
483 | inode->i_ino = get_next_ino(); | ||
483 | inode->i_mode = S_IFSOCK | S_IRWXUGO; | 484 | inode->i_mode = S_IFSOCK | S_IRWXUGO; |
484 | inode->i_uid = current_fsuid(); | 485 | inode->i_uid = current_fsuid(); |
485 | inode->i_gid = current_fsgid(); | 486 | inode->i_gid = current_fsgid(); |