diff options
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/net/socket.c b/net/socket.c index 6f2a17881972..94fe638b4d72 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -70,6 +70,8 @@ | |||
70 | #include <linux/seq_file.h> | 70 | #include <linux/seq_file.h> |
71 | #include <linux/wanrouter.h> | 71 | #include <linux/wanrouter.h> |
72 | #include <linux/if_bridge.h> | 72 | #include <linux/if_bridge.h> |
73 | #include <linux/if_frad.h> | ||
74 | #include <linux/if_vlan.h> | ||
73 | #include <linux/init.h> | 75 | #include <linux/init.h> |
74 | #include <linux/poll.h> | 76 | #include <linux/poll.h> |
75 | #include <linux/cache.h> | 77 | #include <linux/cache.h> |
@@ -272,7 +274,7 @@ int move_addr_to_user(void *kaddr, int klen, void __user *uaddr, int __user *ule | |||
272 | 274 | ||
273 | #define SOCKFS_MAGIC 0x534F434B | 275 | #define SOCKFS_MAGIC 0x534F434B |
274 | 276 | ||
275 | static kmem_cache_t * sock_inode_cachep; | 277 | static kmem_cache_t * sock_inode_cachep __read_mostly; |
276 | 278 | ||
277 | static struct inode *sock_alloc_inode(struct super_block *sb) | 279 | static struct inode *sock_alloc_inode(struct super_block *sb) |
278 | { | 280 | { |
@@ -331,7 +333,7 @@ static struct super_block *sockfs_get_sb(struct file_system_type *fs_type, | |||
331 | return get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC); | 333 | return get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC); |
332 | } | 334 | } |
333 | 335 | ||
334 | static struct vfsmount *sock_mnt; | 336 | static struct vfsmount *sock_mnt __read_mostly; |
335 | 337 | ||
336 | static struct file_system_type sock_fs_type = { | 338 | static struct file_system_type sock_fs_type = { |
337 | .name = "sockfs", | 339 | .name = "sockfs", |
@@ -404,6 +406,7 @@ int sock_map_fd(struct socket *sock) | |||
404 | file->f_mode = FMODE_READ | FMODE_WRITE; | 406 | file->f_mode = FMODE_READ | FMODE_WRITE; |
405 | file->f_flags = O_RDWR; | 407 | file->f_flags = O_RDWR; |
406 | file->f_pos = 0; | 408 | file->f_pos = 0; |
409 | file->private_data = sock; | ||
407 | fd_install(fd, file); | 410 | fd_install(fd, file); |
408 | } | 411 | } |
409 | 412 | ||
@@ -436,6 +439,9 @@ struct socket *sockfd_lookup(int fd, int *err) | |||
436 | return NULL; | 439 | return NULL; |
437 | } | 440 | } |
438 | 441 | ||
442 | if (file->f_op == &socket_file_ops) | ||
443 | return file->private_data; /* set in sock_map_fd */ | ||
444 | |||
439 | inode = file->f_dentry->d_inode; | 445 | inode = file->f_dentry->d_inode; |
440 | if (!S_ISSOCK(inode->i_mode)) { | 446 | if (!S_ISSOCK(inode->i_mode)) { |
441 | *err = -ENOTSOCK; | 447 | *err = -ENOTSOCK; |
@@ -720,8 +726,8 @@ static ssize_t sock_aio_write(struct kiocb *iocb, const char __user *ubuf, | |||
720 | return __sock_sendmsg(iocb, sock, &x->async_msg, size); | 726 | return __sock_sendmsg(iocb, sock, &x->async_msg, size); |
721 | } | 727 | } |
722 | 728 | ||
723 | ssize_t sock_sendpage(struct file *file, struct page *page, | 729 | static ssize_t sock_sendpage(struct file *file, struct page *page, |
724 | int offset, size_t size, loff_t *ppos, int more) | 730 | int offset, size_t size, loff_t *ppos, int more) |
725 | { | 731 | { |
726 | struct socket *sock; | 732 | struct socket *sock; |
727 | int flags; | 733 | int flags; |
@@ -944,7 +950,7 @@ static int sock_mmap(struct file * file, struct vm_area_struct * vma) | |||
944 | return sock->ops->mmap(file, sock, vma); | 950 | return sock->ops->mmap(file, sock, vma); |
945 | } | 951 | } |
946 | 952 | ||
947 | int sock_close(struct inode *inode, struct file *filp) | 953 | static int sock_close(struct inode *inode, struct file *filp) |
948 | { | 954 | { |
949 | /* | 955 | /* |
950 | * It was possible the inode is NULL we were | 956 | * It was possible the inode is NULL we were |
@@ -2023,9 +2029,6 @@ int sock_unregister(int family) | |||
2023 | return 0; | 2029 | return 0; |
2024 | } | 2030 | } |
2025 | 2031 | ||
2026 | |||
2027 | extern void sk_init(void); | ||
2028 | |||
2029 | void __init sock_init(void) | 2032 | void __init sock_init(void) |
2030 | { | 2033 | { |
2031 | /* | 2034 | /* |