git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild
[pandora-kernel.git]
/
net
/
socket.c
diff --git
a/net/socket.c
b/net/socket.c
index
38729af
..
94fe638
100644
(file)
--- a/
net/socket.c
+++ b/
net/socket.c
@@
-70,6
+70,8
@@
#include <linux/seq_file.h>
#include <linux/wanrouter.h>
#include <linux/if_bridge.h>
#include <linux/seq_file.h>
#include <linux/wanrouter.h>
#include <linux/if_bridge.h>
+#include <linux/if_frad.h>
+#include <linux/if_vlan.h>
#include <linux/init.h>
#include <linux/poll.h>
#include <linux/cache.h>
#include <linux/init.h>
#include <linux/poll.h>
#include <linux/cache.h>
@@
-272,7
+274,7
@@
int move_addr_to_user(void *kaddr, int klen, void __user *uaddr, int __user *ule
#define SOCKFS_MAGIC 0x534F434B
#define SOCKFS_MAGIC 0x534F434B
-static kmem_cache_t * sock_inode_cachep;
+static kmem_cache_t * sock_inode_cachep
__read_mostly
;
static struct inode *sock_alloc_inode(struct super_block *sb)
{
static struct inode *sock_alloc_inode(struct super_block *sb)
{
@@
-331,7
+333,7
@@
static struct super_block *sockfs_get_sb(struct file_system_type *fs_type,
return get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC);
}
return get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC);
}
-static struct vfsmount *sock_mnt;
+static struct vfsmount *sock_mnt
__read_mostly
;
static struct file_system_type sock_fs_type = {
.name = "sockfs",
static struct file_system_type sock_fs_type = {
.name = "sockfs",
@@
-383,9
+385,8
@@
int sock_map_fd(struct socket *sock)
goto out;
}
goto out;
}
- sprintf(name, "[%lu]", SOCK_INODE(sock)->i_ino);
+
this.len =
sprintf(name, "[%lu]", SOCK_INODE(sock)->i_ino);
this.name = name;
this.name = name;
- this.len = strlen(name);
this.hash = SOCK_INODE(sock)->i_ino;
file->f_dentry = d_alloc(sock_mnt->mnt_sb->s_root, &this);
this.hash = SOCK_INODE(sock)->i_ino;
file->f_dentry = d_alloc(sock_mnt->mnt_sb->s_root, &this);
@@
-405,6
+406,7
@@
int sock_map_fd(struct socket *sock)
file->f_mode = FMODE_READ | FMODE_WRITE;
file->f_flags = O_RDWR;
file->f_pos = 0;
file->f_mode = FMODE_READ | FMODE_WRITE;
file->f_flags = O_RDWR;
file->f_pos = 0;
+ file->private_data = sock;
fd_install(fd, file);
}
fd_install(fd, file);
}
@@
-437,6
+439,9
@@
struct socket *sockfd_lookup(int fd, int *err)
return NULL;
}
return NULL;
}
+ if (file->f_op == &socket_file_ops)
+ return file->private_data; /* set in sock_map_fd */
+
inode = file->f_dentry->d_inode;
if (!S_ISSOCK(inode->i_mode)) {
*err = -ENOTSOCK;
inode = file->f_dentry->d_inode;
if (!S_ISSOCK(inode->i_mode)) {
*err = -ENOTSOCK;
@@
-721,8
+726,8
@@
static ssize_t sock_aio_write(struct kiocb *iocb, const char __user *ubuf,
return __sock_sendmsg(iocb, sock, &x->async_msg, size);
}
return __sock_sendmsg(iocb, sock, &x->async_msg, size);
}
-ssize_t sock_sendpage(struct file *file, struct page *page,
- int offset, size_t size, loff_t *ppos, int more)
+s
tatic s
size_t sock_sendpage(struct file *file, struct page *page,
+
int offset, size_t size, loff_t *ppos, int more)
{
struct socket *sock;
int flags;
{
struct socket *sock;
int flags;
@@
-945,7
+950,7
@@
static int sock_mmap(struct file * file, struct vm_area_struct * vma)
return sock->ops->mmap(file, sock, vma);
}
return sock->ops->mmap(file, sock, vma);
}
-int sock_close(struct inode *inode, struct file *filp)
+
static
int sock_close(struct inode *inode, struct file *filp)
{
/*
* It was possible the inode is NULL we were
{
/*
* It was possible the inode is NULL we were
@@
-2024,9
+2029,6
@@
int sock_unregister(int family)
return 0;
}
return 0;
}
-
-extern void sk_init(void);
-
void __init sock_init(void)
{
/*
void __init sock_init(void)
{
/*